In der Klasse Game wird nun in einer Endlosschleife immer der aktuelle Gamestatus überprüft und das entsprechende gezeichnet:
Code:
procedure TGame.Main();
begin
if GameState='Spiel'then
PlayerTime := PlayerTime+1*TimeFactor;
end;
So, nun rufe ich aus einem anderen Gamestate die Map.Load procedure auf. Die Texturen werden geladen, und das Spiel fängt dann an. Das Problem jetzt: Die Zeit ist schon um genau die Zeit gelaufen, die es gebraucht hat, die Texturen zu laden. Trotzt korrekter initialisierung von PlayerTime fängt due Zeit sofort bei ca. 3-4 Sekunden an..
Wieso das? Der GameState wird doch erst nach dem Laden der Texturen geändert?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Nichts für ungut aber aus den 2 Quellcodezeilen kann man beim besten Willen nichts erkennen. Also solltest du uns einmal ein bisschen mehr Code zur Verfügung stellen bzw selber mal genau schauen was wie wo gesetzt wird. Zur auch mal mit dem Debugger.
Aber mal anders gefragt. Bei dem Gamestate Spiel addierst du die Zeit auf die Spielerzeit auf. Messen tust du diese wohl zum Anfang vor dem Laden. Und wenn du danach dann zum "Spiel" wechselst ist es ja logisch, dass die Zeit zum Spiel hinzugerechnet wird. Wie du das ändern kannst lässt sich aus dem bisschen Code nicht sagen.
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.