2D Spiel - FPS unabhängig

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

juse4pro

Betreff: 2D Spiel - FPS unabhängig

BeitragSa, Dez 27, 2008 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

vielleicht verrät der Betreff schon, was ich wissen möchte, nämlich, wie ich mein Spiel FPS unabhängig mache...

ich habe bei IDEal folgendes Snippet gefunden:
Code: [AUSKLAPPEN]
   Graphics3D 640,480
   
   Global Camera=CreateCamera ()
   
   Const GameUPS=60 ; Updates per second
   Local Period=1000/GameUPS
   Local FrameTime=MilliSecs()-Period
   
   Local Tween#, Ticks,i,Remaining,StartTime,Elapsed
   
   While Not KeyHit(1)
      
      StartTime = MilliSecs()
      
      Repeat
         Elapsed=MilliSecs()-FrameTime
      Until Elapsed
      
      Ticks=Elapsed / Period
      Tween=Float(Elapsed Mod Period)/Float(Period)
      
      For i=1 To Ticks
         FrameTime=FrameTime+Period
         If i=Ticks Then
            CaptureWorld
         End If
         UpdateGame()
         UpdateWorld
      Next
      RenderWorld Tween
      
      Remaining = Period - (MilliSecs() - StartTime)
      If Remaining > 1 Then
         Delay (Remaining-1) ; Free some CPU time
      End If
      
      Flip
      
   Wend
   
   End
   
Function UpdateGame()
   ; ...
End Function


aber dieser scheint ja auf 3D aufzubauen, wie soll ich dieses Snippet auf 2D übertragen?
Portfolio |LinkedIn |XING

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Dez 27, 2008 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Messe mit MilliSecs die Zeit, die ein Schleifendurchlauf benötigt und rechne diesen als Faktor dann auf alle Bewegte Objekte und ggf. auch dessen Beschleunigung ein. Also: Statt XPos=XPos+1, müsste man dann XPos=XPos+1*Faktor machen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

juse4pro

BeitragSa, Dez 27, 2008 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
das lässt sich aber nicht gut auf tile kollision prüfen, oder?
Portfolio |LinkedIn |XING

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Dez 27, 2008 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn die FPS so weit absinken, dass die Bewegungsschritte zu groß werden um vernünftige Kollisionen zu tätigen, dann müssen eben Zwischenschritte eingeleitet werden. Aber das ist nun mal so eines der kommenden Probleme beim framesunabhängigem programmieren. Unter reinem 3D mit Entity-Kollisionen ist es wiederrum egal, da unter 3D eben jede Kollision (Außer MehesIntersects) erst durch die Bewegung selbst registriert wird. Und da ist es im grunde egal wie groß die Bewegungsschritte sind.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group