Hilfestellung für Platformer / JumpnRun (Sprung)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

PacMani

Betreff: Hilfestellung für Platformer / JumpnRun (Sprung)

BeitragDo, Jun 03, 2010 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich derzeit an meinem ersten Jump'n'Run Spiel arbeite, tauchen meinerseits noch ein paar Fragen auf.

Und zwar möchte ich meine Figur springen lassen. Wer Mario etc. kennt, weiß ja sicherlich, das die Figur nur solange springen soll, wie die Sprungtaste gedrückt wird, und solange ihr erlaubt ist, noch springen zu dürfen.

Wie sollte man da codingmäßig am besten vorgehen? Das die Figur nur dann springen darf, wenn sie auf Boden steht sowie Schwerkraft habe ich schon. Eine Frage habe ich eher zum Timing / maximalen Dauer des Sprunges.

Folgendes habe ich mir vorgestellt:
Spieler drückt Sprungtaste --> Timeout mit MilliSecs() wird erstellt --> wenn abgelaufen kein Höhengewinn mehr
Spieler lässt Sprungtaste während des Sprunges los --> Höhengewinn wird auf 0 gestellt

Ist es empfehlenswert, mit MilliSecs() vorzugehen? Das ganze soll ja auch frameunabhängig ablaufen. Ich arbeite momentan mit einem FPSTimer von 60, auf den in der Hauptschleife immer gewartet wird. Wie sieht es aber auf Maschinen aus, bei denen das Spiel leicht ruckelt? Der Sprung darf dort ja weder höher noch tiefer gehen.

Midimaster

BeitragDo, Jun 03, 2010 13:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Um auch auf Maschinen unter 60fps das gleiche Ergebnis zu erzielen, muss die Sprunghöhe von der Zeit abhängig gemacht werden:

BlitzBasic: [AUSKLAPPEN]
Repeat
...
If KeyHit(WasAuchImmer)
SprungStartZeit=MilliSecs()
SprungStartY=EntityY(Figur)
EndIf
ZeitDifferenz=MilliSecs()-SprungStartZeit
PositionEntity Figur, EntityX(Figur), SprungStartY + 0.01* ZeitDifferenz, EntityZ(Figur)
....


Natürlich muss noch was zum Umkehren rein. Der Code soll ja nur zeigen wie die Zeitspanne in das Y fliessen könnte.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group