canvas gravitationssimulationsproblem

  • Huhu,

    ich bin totaler Neuling in Sachen Javascript.

    Ich versuche mich an einem kleinen Spielchen und benötige Ideen und Vorschläge :D

    Ich habe da so ein Spiel nachprogrammiert Namens MoonLander, Ziel des Spiels soll es sein, dass Raumschiff sanft auf dem Boden landen zu können.

    Es gibt nur zwei mögliche Steuermöglichkeiten: entweder Pfeiltaste oben ist gedrückt oder Pfeiltaste oben ist nicht gedrückt. Funktioniert auch soweit.

    Jetzt aber zu einem wesentlichen Faktor der Physik, welches mir fehlt... die Zeit!

    Soweit schön und gut, funktioniert soweit alles, ich habe versucht sobald ich die Pfeiltaste "oben" loslasse sollte das Raumschiff langsam abbremsen und zu fallen beginnen, natürlich möchte ich

    das das Raumschiff auf dem Weg nach unten an Geschwindigkeit zu nimmt... WIE LÖSE ICH DAS????????


    DANKE!!! :D

    mein Versuch:

    so funktionierts leider nicht :D


    Viel Saß euch noch!:)

  • Mit dy bist Du schon auf dem richtigen Wege: Das ist die Änderung der Position innerhalb eines Zeitintervalls bzw. die Geschwindigkeit. Die Auswirkung der Beschleunigung ist z. B. hier:

    https://www.leifiphysik.de/mec…-beschleunigte-bewegungen

    gut beschrieben, das Zeit-Geschwindigkeit-Gesetz.

    Es besagt, dass die Geschwindigkeit umso größer ist, je mehr Zeit verstrichen ist. Oder, auf deinen Fall angewendet, wenn das Raumschiff zu Boden sinkt und Du es mit einem festen Zeitintervall bewegst, vergrößert sich die Geschwindigkeit immer um einen festen Betrag.

    Würde dann etwa so aussehen:


    v = 10; // Die Anfangsgeschwindigkeit

    b = 1; // Die Beschleunigung

    x = 50; // Die x-Position am Anfang

    y = 0; // Die y-Position am Anfang


    Dann brauchst Du eine Schleife und darin


    v += b; // die Geschwindigkeit erhöht sich um die Beschleunigung

    y += v; // die y-Position vergrößert sich entspr. der Geschwindigkeit


    Um eine Schleife für eine Animation aufzubauen, wird requestAnimationFrame empfohlen, siehe hier:

    https://wiki.selfhtml.org/wiki…dow/requestAnimationFrame


    Damit kannst Du dann schon Mal erreichen, dass das Raumschiff nach unten sinkt und die Geschwindigkeit dabei immer größer wird. Ohne die Pfeiltaste wird es dann am Boden zerschellen, aber versuche zunächst mal den ersten Schritt.