Ganon
2003-12-03, 17:52:12
Hi.
Ich versuche gerade in meinem kleinen Spiel die Animationen auf jedem Rechner gleich schnell zu machen (d.h. das Öffnen der Tür dauert überall z.B. 2 Sekunden, egal wieviel Frames).
So wie ich bei meinen anderen Problemen schon mitbekommen habe, muss ich die Zeit, die ein Frame braucht, benutzen und einsetzen.
Naja. Zur Zeit sieht es so aus (jetzt mal lückenhaft):
#include <time.h>
#define CLOCKS_PER_SEC 1000
clock_t startzeit, endzeit;
long double AnimaBremse=0.0;
void ZeicheSzene()
{
AnimaBremse = double(endzeit-startzeit)/CLOCKS_PER_SEC;
startzeit = clock();
.
. // Szene zeichnen, alle Animationen werden *AnimaBremse genommen
.
endzeit = clock();
}
Als Wert bekomme ich 0.001. Das war auch der Wert den ich vorher als Platzhalter eingetragen hatte. Jedoch! In 640x480 dauert das öffnen der Tür 2 Sekunden. Stelle ich aber auf 1024x768, dann dauert es 4 Sekunden.
D.h. die ganze Rechnerei bringt nix. Er scheint immernoch 0.001 als Wert zu bekommen.
Was muss ich denn noch machen? Oder mache ich etwas falsch?
Danke! :)
Ich versuche gerade in meinem kleinen Spiel die Animationen auf jedem Rechner gleich schnell zu machen (d.h. das Öffnen der Tür dauert überall z.B. 2 Sekunden, egal wieviel Frames).
So wie ich bei meinen anderen Problemen schon mitbekommen habe, muss ich die Zeit, die ein Frame braucht, benutzen und einsetzen.
Naja. Zur Zeit sieht es so aus (jetzt mal lückenhaft):
#include <time.h>
#define CLOCKS_PER_SEC 1000
clock_t startzeit, endzeit;
long double AnimaBremse=0.0;
void ZeicheSzene()
{
AnimaBremse = double(endzeit-startzeit)/CLOCKS_PER_SEC;
startzeit = clock();
.
. // Szene zeichnen, alle Animationen werden *AnimaBremse genommen
.
endzeit = clock();
}
Als Wert bekomme ich 0.001. Das war auch der Wert den ich vorher als Platzhalter eingetragen hatte. Jedoch! In 640x480 dauert das öffnen der Tür 2 Sekunden. Stelle ich aber auf 1024x768, dann dauert es 4 Sekunden.
D.h. die ganze Rechnerei bringt nix. Er scheint immernoch 0.001 als Wert zu bekommen.
Was muss ich denn noch machen? Oder mache ich etwas falsch?
Danke! :)