Physik/FPS anpassen
Verfasst: 19.11.2004 17:31
Hi,
ich habe eine sehr sehr einfache Physik Engine für ein Spiel geschrieben. Jetzt möchte ich, dass ser spieler bei jeder FPS zahl gleich schnell fällt und springt.
So wie es bei diesem Beispiel auch mit dem laufen ist:
PixelProMS sind hier wie viele Pixel der Spieler in einer MS laufen soll, und MSDurchlauf sind die MS, die für einen Durchlauf der Hauptschleife gebraucht werden. (Bei 100 FPS - 10 MS pro Durchlauf)
Die verkürzte Hauptschleife sieht so aus:
Player(0)\Vy = velocity
Der falsche Teil ist glaube ich der:
Würde mich freuen, wenn ihr mir helfen könntet.
ich habe eine sehr sehr einfache Physik Engine für ein Spiel geschrieben. Jetzt möchte ich, dass ser spieler bei jeder FPS zahl gleich schnell fällt und springt.
So wie es bei diesem Beispiel auch mit dem laufen ist:
Code: Alles auswählen
Player(0)\x = Player(0)\x + (#PixelProMS * MSDurchlauf)
Die verkürzte Hauptschleife sieht so aus:
Code: Alles auswählen
Repeat
FlipBuffers()
ExamineKeyboard()
FPS = fps()
MSDurchlauf.f = 1000 / FPS
;{ Links Rechts Bewegen
;}
;{ Springen
If KeyboardPushed(#PB_Key_LeftAlt) And Player(0)\Jump = #False
Player(0)\Vy = 1.7
Player(0)\Jump = #True
EndIf
;}
;{ Physik
If CheckBoden(Player(0)\x, Player(0)\y) = 0 And Player(0)\Jump = #False
Player(0)\Jump = #True
EndIf
If Player(0)\Jump = #True
Player(0)\Vy = Player(0)\Vy - #GravitationProMS * MSDurchlauf
Player(0)\y = Player(0)\y - Player(0)\Vy
For i = 0 To Int(Player(0)\Vy) Step - 1
If CheckBoden(Player(0)\x, Player(0)\y - i) = 1
Player(0)\Jump = #False
Player(0)\Vy = 0
Player(0)\y = Player(0)\y - i
EndIf
Next
EndIf
;}
;{ Player Sprite Zeichen
;}
Until KeyboardReleased(#PB_Key_Escape)
Der falsche Teil ist glaube ich der:
Code: Alles auswählen
Player(0)\Vy = Player(0)\Vy - #GravitationProMS * MSDurchlauf
Player(0)\y = Player(0)\y - Player(0)\Vy