Ich stehe auf dem Schlauch. Meine Sprungmechanik soll mit einer festen Sprunghöhe arbeiten und Gravitation. Heißt, meine Spielfigur soll bspw. immer 48 Pixel hoch springen, bevor die Gravitation sie runterzieht.
Dafür brauche ich einen Algorithmus, der die Gravitation von der Sprunghöhe abhängig macht. Ich stelle mir das so vor:
  • Sprunghöhe = 48 Pixel
  • Spieler drückt Sprungtaste
  • Spielfigur springt, Bewegung auf der y-Achse nach oben
  • Gravitation beeinflusst Bewegung
  • Bewegung wird genau dann 0, wenn Sprunghöhe = 48 erreicht ist
  • Spielfigur fällt, Bewegung auf der y-Achse nach unten

Der Algorithmus muss natürlich dynamisch sein. Gebe ich demnach 32 Pixel (beliebige Zahl) als Sprunghöhe an, muss der Übergang von Sprung zu Fall genau auf der Höhe stattfinden.

Super Mario World arbeitet auch so. Die Sprunghöhe ist zwar abhängig davon, wie lange man die Sprungtaste gedrückt hält, variiert aber nur in Stufen, die dem Tileraster entsprechen. Kurz gedrückt halten: 16(?) Pixel hoch. Länger gedrückt halten: 32(?) hoch. Lange gedrückt halten: 48(?) hoch.

Ich benutze den Game Maker, aber das ist eigentlich egal. Mehr als einen Schubser in die richtige Richtung brauche ich nicht.