Variable Sprunghöhe
Bei variabler Sprunghöhe geht ein Sprung umso höher, je länger der Knopf gehalten wird. Der Sprung startet mit voller Geschwindigkeit, und sobald der Knopf losgelassen ist, bremst die Steigphase auf eine niedrige Geschwindigkeit ab. Antippen ergibt einen kurzen Hüpfer, langes Drücken einen vollen Sprung. Prüfe, ob der Knopf noch gedrückt ist, nicht wann er losgelassen wird.

Das sagst du deiner KI
Kopiere es in Claude, Cursor oder ChatGPT. Gute Werte und die typischen Fehler stehen schon drin.
Baue „Variable Sprunghöhe“ in mein Spiel ein.
Das soll es bewirken: Ein Knopf gibt dem Spieler eine ganze Bandbreite an Sprüngen, vom kurzen Hüpfer bis zum vollen Satz, allein dadurch, wie lange er ihn hält. So hat er jeden Sprung selbst in der Hand.
Baue es genau nach diesem Automaten. Prüfe zuerst, ob er zu meinem Spiel passt, und bau ihn dann so:
```mermaid
stateDiagram-v2
[*] --> ground
ground: Am Boden
full: Voller Anstieg
slow: Langsamer Anstieg
falling: Fällt
ground --> full: drücken und halten
ground --> slow: kurzes Antippen
ground --> falling: läuft über die Kante
full --> slow: Knopf los oder langsamer
slow --> falling: höchster Punkt
falling --> ground: landet
```
Nimm diese Startwerte:
- jumpSpeed: 12 units/s
- cutSpeed: 4 units/s
- gravity: 32 units/s²
- maxFallSpeed: 20 units/s
Achte auf diese typischen Fehler:
- Ein kurzes Antippen ergibt einen vollen Sprung: Sag deiner KI: Starte erst den Sprung, und kürze ihn dann im selben Schritt.
- Der Knopf ist schon oben, wenn der Sprung startet: Sag deiner KI: Prüfe in jedem Moment der Steigphase, ob der Knopf noch gedrückt ist. Mehr dazu bei Jump Buffering.
- Der kurze Hüpfer ändert sich mit der Bildrate: Sag deiner KI: Begrenze die Steigphase auf eine feste Geschwindigkeit, oder gib zusätzliche Schwerkraft dazu, die die vergangene Zeit berücksichtigt.
- Das Hochschleudern wird abgeschnitten: Sag deiner KI: Kürze nur eine Steigphase, die aus einem Sprung kommt.
Ändere nichts anderes im Spiel. Behaupte nichts, ohne es zu belegen: Modelliere, was dafür nötig ist, und zeig mir, worauf deine Lösung beruht und woran ich sehe, dass sie klappt. Wenn du etwas nicht zeigen kannst, sag, dass du es nicht weißt. Sag mir danach in einfachen Worten, wie ich es ausprobiere.Oder spar dir das und schließ den MCP an: Dann findet deine KI das alles von selbst.MCP anschließen
Was es bewirkt
Ein Knopf gibt dem Spieler eine ganze Bandbreite an Sprüngen, vom kurzen Hüpfer bis zum vollen Satz, allein dadurch, wie lange er ihn hält. So hat er jeden Sprung selbst in der Hand.
So läuft es ab, als Diagramm
Alles, was es sein kann, und was es weiterbewegt. Genau danach baut deine KI.
So läuft es ab, als Diagramm
- Am Boden → Voller Anstieg: drücken und halten
- Am Boden → Langsamer Anstieg: kurzes Antippen
- Am Boden → Fällt: läuft über die Kante
- Voller Anstieg → Langsamer Anstieg: Knopf los oder langsamer
- Langsamer Anstieg → Fällt: höchster Punkt
- Fällt → Am Boden: landet
Gute Startwerte
| Wert | Starte mit | Was es ändert |
|---|---|---|
| jumpSpeed | 12 units/s | Wie kräftig sich die Figur abstößt. Zusammen mit der Schwerkraft bestimmt das die Höhe eines vollen Sprungs. |
| cutSpeed | 4 units/s | Wie schnell ein Sprung noch steigen darf, wenn der Knopf losgelassen ist. Das bestimmt den kürzesten Hüpfer. |
| gravity | 32 units/s² | Wie schnell eine Steigphase abbremst, also wie lange der Spieler Zeit zum Entscheiden hat. |
| maxFallSpeed | 20 units/s | Die höchste Geschwindigkeit, mit der die Figur fallen kann. |
Was meistens schiefgeht
Ein kurzes Antippen ergibt einen vollen Sprung
Sieht sich das Spiel den Knopf an, bevor es den Sprung startet, bekommt ein Antippen, das im selben Augenblick gedrückt und losgelassen wird, die volle Höhe. Als das Spiel nachgesehen hat, stieg noch nichts.
Lösung: Sag deiner KI: Starte erst den Sprung, und kürze ihn dann im selben Schritt.
Der Knopf ist schon oben, wenn der Sprung startet
Ein gemerkter Sprung kann starten, nachdem der Knopf losgelassen wurde. Achtet das Spiel nur auf den Moment des Loslassens, kommt dieser Moment nie, und ein kurzer Druck ergibt einen vollen Sprung.
Lösung: Sag deiner KI: Prüfe in jedem Moment der Steigphase, ob der Knopf noch gedrückt ist. Mehr dazu bei Jump Buffering.
Der kurze Hüpfer ändert sich mit der Bildrate
Wird die Geschwindigkeit in jedem Schritt, in dem der Knopf oben ist, mit einem Faktor multipliziert, ist die Höhe bei verschiedenen Bildraten verschieden.
Lösung: Sag deiner KI: Begrenze die Steigphase auf eine feste Geschwindigkeit, oder gib zusätzliche Schwerkraft dazu, die die vergangene Zeit berücksichtigt.
Das Hochschleudern wird abgeschnitten
Eine Feder oder ein Treffer von unten schleudert die Figur schnell hoch, während der Knopf nicht gehalten wird, und das Kürzen der Steigphase stoppt das abrupt.
Lösung: Sag deiner KI: Kürze nur eine Steigphase, die aus einem Sprung kommt.
So prüfst du, ob es klappt
- Deine Figur steht auf dem Boden. Drück auf Sprung und halte den Knopf bis zum höchsten Punkt: Der Sprung erreicht die volle Höhe.
- Deine Figur steht auf dem Boden. Tippe so kurz wie möglich auf Sprung: Du bekommst einen kurzen Hüpfer, deutlich unter der vollen Höhe.
- Deine Figur steigt schnell in einem Sprung. Lass den Knopf los: Die Steigphase bremst sofort ab, und danach wirkt nur noch die Schwerkraft.
- Deine Figur fällt nach einem Sprung. Halte den Knopf, und versuch es dann, ohne ihn zu halten: Der Fall ist beide Male gleich.
- Deine Figur wird von etwas anderem als einem Sprung nach oben geschleudert. Fass den Knopf nicht an: Die Figur behält ihre Geschwindigkeit, abgesehen von der Schwerkraft.
- Deine Figur ist in der Luft. Drück auf Sprung: Nichts passiert.
Passt gut zu
- Jump Buffering: Andersherum kann ein kurzer Druck einen vollen Sprung ergeben. Siehe Jump Buffering. Starte erst den Sprung, und achte dann darauf, ob der Knopf noch gedrückt ist.
- Coyote Time: Ein Sprung aus der Schonfrist nach einer Kante sollte sich genauso kürzen lassen wie einer vom Boden. Starte erst den Sprung, kürze ihn dann.
- Doppelsprung: Ein Luftsprung lässt sich genauso kürzen. Entscheide, ob er das soll; ein fester Luftsprung ist leichter einzuschätzen.
Häufige Fragen
wie macht man einen sprung mit variabler höhe
Starte mit voller Geschwindigkeit. Solange der Sprung steigt und der Knopf nicht gehalten wird, begrenzt du die Geschwindigkeit auf einen niedrigen Wert. Die Schwerkraft beendet die Steigphase dann früh, und ein Antippen ergibt einen kurzen Hüpfer.
was sage ich meiner ki um variable sprunghöhe einzubauen
Kopier das: Mach den Sprung umso höher, je länger der Knopf gehalten wird. Starte mit voller Geschwindigkeit, und prüfe in jedem Moment der Steigphase, ob der Knopf noch gedrückt ist, nicht nur den Moment des Loslassens. Ist er nicht gedrückt, begrenze die Geschwindigkeit nach oben auf einen niedrigen Wert.
warum ändert sich mein kurzer hüpfer mit der framerate
Das Multiplizieren der Geschwindigkeit in jedem Schritt hängt davon ab, wie viele Schritte es gibt. Sag deiner KI, sie soll die Steigphase auf eine feste Geschwindigkeit begrenzen oder zusätzliche Schwerkraft dazugeben, die die vergangene Zeit berücksichtigt.
wie hoch sollte ein kurzer hüpfer im vergleich zum vollen sprung sein
Das ergibt sich aus den beiden Geschwindigkeiten, denn die Höhe wächst mit dem Quadrat der Geschwindigkeit. Eine niedrige Geschwindigkeit von einem Drittel der Absprunggeschwindigkeit ergibt etwa ein Neuntel der Höhe.
Woher es kommt
Frühestes Beispiel, das wir finden konnten: Super Mario Bros. (Nintendo) (1985). Jeremy Parishs Analyse von 2013 sagt, dass Höhe und Weite von Marios Sprung davon abhängen, wie lange der Knopf gehalten wird, und dass auch die Anfangsgeschwindigkeit sie verändert. Der Geschichtsteil der DiGRA-Arbeit von 2016 berichtet, dass das Spiel für die Kontrolle des Spielers über Sprunghöhe und -weite angeführt wird. Nichts hier Geöffnetes dokumentiert das Verhalten in einem früheren Spiel, aber eine systematische Prüfung früherer Spiele war nicht möglich.
- 1985 Super Mario Bros. (Nintendo): Jeremy Parishs Analyse von 2013 sagt, dass Höhe und Weite von Marios Sprung davon abhängen, wie lange der Knopf gehalten wird, und dass auch die Anfangsgeschwindigkeit sie verändert. Der Geschichtsteil der DiGRA-Arbeit von 2016 berichtet, dass das Spiel für die Kontrolle des Spielers über Sprunghöhe und -weite angeführt wird. Nichts hier Geöffnetes dokumentiert das Verhalten in einem früheren Spiel, aber eine systematische Prüfung früherer Spiele war nicht möglich. [Anatomy of Super Mario: X. Super-sized (Jeremy Parish, The Anatomy of Games, 2013-08-07; archived mirror)][You Say Jump, I Say How High? Operationalising the Game Feel of Jumping (Fasterholdt, Pichlmair, Holmgard, DiGRA/FDG 2016)]
- 1988 Super Mario Bros. / Duck Hunt instruction booklet (Nintendo of America): Das offizielle Handbuch sagt den Spielern, dass längeres Halten des Knopfs einen höheren Sprung ergibt. Das Handbuch selbst ließ sich nicht öffnen; der Wortlaut stammt von einer MarioWiki-Benutzerseite, die es zitiert und belegt, was ein schwacher Weg zu einem Primärdokument ist. [User:KamekSans/Projects/Lists of Jump Profiles/List of Jump Profiles (1981-1989) (Super Mario Wiki user page)]
- 2010 Adam Saltsman, 'Tuning Canabalt': Der technische Text eines Entwicklers erklärt einen Sprung mit gehaltenem Knopf, den ein Timer steuert, der auch von der Laufgeschwindigkeit abhängt. Es ist eine öffentliche Darstellung, wie sich ein solcher Sprung bauen lässt, mit der Begründung des Autors. [Tuning Canabalt (Adam Saltsman, Game Developer/Gamasutra blog, 2010-09-29)]
- 2010 Super Mario Bros. development notes, printed in Nintendo's 25th Anniversary Collection book: Undatierte Planungsnotizen aus der Zeit vor der Veröffentlichung wurden öffentlich, als Nintendo sie abdruckte, und ein Blogbeitrag auf GlitterBerri vom Dezember 2010 gibt sie wieder. In der englischen Übersetzung hängt die Sprunghöhe von Marios Geschwindigkeit beim Drücken des Knopfs ab. Das Blog sagt, das japanische Original erwähne auch die Knopfeingabe und enthalte ungeklärte Platzhalter. Diese Notizen zeigen die Planung, nicht das, was ausgeliefert wurde. [Mario Development Notes (GlitterBerri, 2010-12-19)]
- 2014 Yoann Pignole, 'Platformer controls: how to avoid limpness and rigidity feelings': Ein Blogbeitrag eines Entwicklers stellt einen festen Sprung einem gegenüber, der sich verkürzen lässt, argumentiert, dass der Unterschied in sprungorientierten Spielen zählt, und nennt Super Meat Boy, Mario und Sonic als Beispiele. [Platformer controls: how to avoid limpness and rigidity feelings (Yoann Pignole, Game Developer, 2014-01-03)]
- 2016 Kyle Pittman, 'Math for Game Programmers: Building a Better Jump' (GDC 2016 talk): Ein GDC-Vortrag über den Bau von Sprungbahnen aus Eingaben, die für Designer gedacht sind. Seine Sitzungsübersicht nennt eine Höhe, die mit der Spielereingabe variiert, unter den behandelten nicht-parabolischen Fällen. Gelesen wurde nur die Übersicht, nicht der Vortrag. [Math for Game Programmers: Building A Better Jump (Kyle Pittman, Minor Key Games, GDC Vault, GDC 2016)]
Was geprüft wurde
- 11 Tests bestehen auf dem Referenzcode.
- Das Zustandsdiagramm wurde gegen den Code geprüft, mit den Standardwerten und mit jedem niedrigsten und höchsten Wert der Liste.
- Der Godot-Port besteht dieselben Tests auf der echten Engine.
Deine KI bekommt den Code
Fertiger Beispielcode kommt über die Spielerando-Verbindung, damit deine KI ihn sofort nutzen kann. So verbindest du es