Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 |
float gold = 0.0f; float goldpersecond = 5.0f float time; while (true) { time = GetFrameTime(); // <---- hierfür musst du irgendwas passendes finden... gold += goldpersecond * time; } |
Alter Hase
Alter Hase
Zitat von »"n0_0ne"«
Ob er für das Hochzählen eine Klasse verwendet oder nicht, ist relativ egal...
Was er aber in jeden Fall braucht, und das scheint noch nicht ganz verstanden worden zu sein, ist eine "Endlos-"schleife, die die ganze Zeit läuft während das Programm läuft. In dieser Schleife machst du dann einfach alles.
Jetzt nimmst du einmal am Anfang der Schleife die Zeit, und einmal am Ende. Dann berechnest du die Differenz dazwischen und mit diesem Wert musst du dann beim hochzählen "alles" multiplizieren, weil es sonst auf unterschiedlich schnellen Rechnern auch unterschiedlich schnell hochzählen würde. (Sie würde einfach schneller->öfter durchlaufen)
Jetzt kannst du wie K-Bal sagt auch eine Klasse fürs Hochzählen erstellen, und dieser dann eine UpdateMethode verpassen, kannst das aber auch ganz normal über globale Variablen oder so machen.
Du könntest dir auch eine CGame Klasse basteln, in der dann diese Schleife läuft, z.B. CGame::Run() und dann nicht mehr mit Globalen Variablen arbeiten, sondern mit privaten variablen der CGame klasse... oder du gibst CGame eine Membervariable vom Typ CResourceManager...
Wie du siehst hast du also etliche Möglichkeiten, was du machst ist Geschmackssache... allerdings wirst du als Anfänger erstmal nicht um die Spielschleife herumkommen, wobei das aber auch eine absolut sinnvolle Lösung ist!
Alter Hase
Zitat von »"n0_0ne"«
Konstruktive Kritik FTW... was ist falsch daran, was ich geschrieben habe?
Ich meinem Spiel funktioniert das alles in etwa so, wie ich es beschrieben habe. Eigentlich wollte ich ihm aber nur klarmachen, dass er für das Hochzählen eine Schleife braucht, und dafür keine parallel laufenden Konstruktoren verwenden sollte/kann....
Werbeanzeige