Hi, es ist ja nicht schlecht wenn man die Frames auf 60Hz begrenzt und so seine Spieler bewegung abstimmt,
aber was ist wen bei einem das Spiel nur 30 oder 20 Frames läuft?
Hier muss man die bewegung Frameunabhängig Steuern.
GLBasic hat hierfür eine sehr gute Function, GETTIMER()
Die gibt die zeit an von Showscreen bis zum nächsten und das können wir hierfür sehr gut nutzen.
Hier mal ein Beispiel Code wie es aussehen könnte.
Das Quadrat braucht etwas über 15sec. von einem Bildschirmrand bis zum andern.
Dabei spielt es keine rolle ob mit 20 FPS oder mit 500 FPS.
// --------------------------------- //
// Project: Frameunabhängig bewegen
// Start: Sunday, March 04, 2007
// IDE Version: 4.114
LIMITFPS 20 /// hier mal werte ändern, -1 = Vsync Off
WHILE TRUE
move = GETTIMER()
time = GETTIMERALL()
//-------------
IF (time - temp) > 1000
INC a1,1 // Secundenzähler
temp = time
ENDIF
//-------------
//-----------Das ist der interesante Teil
x = x +(0.02 * move ) //<<<< Frameunabhängig bewegen, mal mit dem wert 0.02 rumspielen ;)
FILLRECT x,0,x+10,10,RGB(100,50,200)
IF x > 640
x = 0 // X zurücksetzen
a2 = a1 // Für die zeitmessung
a1 = 0
ENDIF
//---------------------------------------
// Das ist nur für die ausgabe
PRINT getfps()+" Frames",10,100
PRINT move+" millisec." ,10,120
PRINT a2+" Secunden vergangen",10,140
SHOWSCREEN
WEND
FUNCTION getfps:
STATIC fps_time,fps_counter,fps,fps_temp
fps_time = GETTIMERALL()
fps_counter = fps_counter + 1
IF (fps_time-fps_temp)>1000
fps_temp = fps_time
fps = fps_counter
fps_counter = 0
ENDIF
RETURN fps
ENDFUNCTION
Hi
Sehr gut.
Im englischen Forum hab ich auch mal ein paar Timer-Beispiele dazu gemacht.:D
http://www.glbasic.com/forum/viewtopic.php?id=531
Schreibs halt da auch noch mit rein wenn du willst .
P.s.
Du machst echt gute Beispiele.
Cheers
Quote from: BumbleBeeHi
Sehr gut.
Im englischen Forum hab ich auch mal ein paar Timer-Beispiele dazu gemacht.:D
http://www.glbasic.com/forum/viewtopic.php?id=531
Schreibs halt da auch noch mit rein wenn du willst .
P.s.
Du machst echt gute Beispiele.
Cheers
Hi, würd ich ansich gern aber, hmmm Englisch?
Das ist fast ein Fremdword für ich :(
Werd das spätermal versuchen das ganze mit einem Tranlator zu übersetzen und dort posten.
Und, Danke. :)