Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 16:38

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Jan 17, 2007 18:07 
Offline
DGL Member

Registriert: So Jul 17, 2005 12:59
Beiträge: 89
Hi,

also folgendes Problem:

Ich lade zur Laufzeit eines Programms ein paar Texturen, das dauert ca. 3-4 Sekunden. Dazu rufe ich eine Load Methode einer Klasse auf:

Code:
  1.  
  2. procedure TMap.Load();
  3. begin
  4.   // Texuren laden .....
  5.  LoadTexture(GameSettings.getAppDir + 'gfx\Intro\dorf.jpg', waldBG, false);
  6.  ...
  7.  
  8.   Game.setGameState('Spiel');
  9. end;
  10.  


In der Klasse Game wird nun in einer Endlosschleife immer der aktuelle Gamestatus überprüft und das entsprechende gezeichnet:

Code:
  1.  
  2. procedure TGame.Main();
  3. begin
  4.  if GameState='Spiel' then
  5.     PlayerTime := PlayerTime+1*TimeFactor;
  6. end;
  7.  


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?

Grüße
Passi


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 17, 2007 19:12 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Benutzt du Threads und wann wird TimeFactor gesetzt?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 17, 2007 19:14 
Offline
DGL Member
Benutzeravatar

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.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]