2D Spiel "Der Sprung"

Svens

Mitglied
Hallo zusammen,

ich bin dabei ein 2D Jump'n Run Spiel zu programmieren. Eines der wichtigsten Elemente ist es ja, dabei springen zu können. Jedoch habe ich doch keine Idee, wie ich die implementieren kann und frage nun hier um Rat.

Ich habe schon einmal gesehen, dass machne eine neue Klasse für Sprung erstellt haben, damit der Sprung gleichzeitig mit dem Laufen agiert.

Ist es wirklich nötig, eine neue Klasse zu erstellen?

Wichtig ist mir dabei nur, dass ich während dem Laufen springen kann, um so z.B. über Blöcke zu hüpfen. Da würde es mir ja recht wenig nützen, wenn ich auf einer Stelle springe.

Ich hoffe ihr könnt mir dabei weiter helfen.
 
Wie der Sprung ablaufen soll, habe ich ja auch verstanden. Problem ist nur, dass ich beim Laufen springen möchte und nicht, dass der stehen bleibt.

Ich habe mir noch ein weiteres Tutorial durchgelesen und da stand was von einem Thread oder auch von Multithreading. Was ist das, was kann das und wie funktionert das? Kann mir da einer weiterhelfen?
 
Zuletzt bearbeitet:
Wie gesagt ohne Code ist es schwer zu helfen. Du benötigst aber keine Threads für so etwas. Du hast in deinem Spiel doch eine Hauptschleife die sich um die Spiellogik kümmert und du wirst bestimmt auch ein Spielerobjekt haben. Vermutlich wird dein Spielerobjekt auch eine Update Methode haben. Dort kannst du die Bewegung für den Sprung einbauen. Prüfe einfach ob das Objekt gerade springt wenn ja führe die Sprungbewegung weiter aus, wenn nicht dann eben nicht. Das beeinflusst dann die normale Bewegung nicht und auch wenn dein Spieler springt kann er sich noch bewegen....
 
Wie schon erwähnt, bietet es sich an, eine Game-Loop zu haben, die alles berechnet und dann neu zeichnet.
Zudem bietet es sich an, neben der x- und y-Position des Spielers noch zwei Variablen für die x- und y-Geschwindigkeit zu haben.
Jedes mal, wenn die Spielschleife den Spieler "berechnet", addierst du zu seiner x- und y-Position die jeweilige Geschwindigkeit. Für einen Sprung setzt du die y-Geschwindigkeit dann einfach auf einen negativen Wert (man beachte die invertierte y-Achse in Java) und der Spieler macht einen Sprung.
Du solltest dann noch Gravitation und Reibung hinzufügen, es sei denn, du möchtest, dass der Spieler unendlich weiterläuft/-springt.
 
Zuletzt bearbeitet:
Ich glaube, hier bieten sich Vektoren an, sodass der Sprung nur eine Beschleunigung nach oben ist. Die Pfeiltasten haben nur Einfluss auf die x-Komponente des Vekotrs und der Sprung auf die y-Komponente. Springst du, so wird in die y-Komponente bspw. eine 5 geschrieben. Die GameLoop nimmt diesen Wert, berechnet den Ort, wo der Spieler bis zur nächsten Berechnung sein muss und verändert dementsprechend die y-Komponente.
 

Zurück
Oben