Frage von goveganyolo, 65

Mario in HTML/JavaScript programmieren!?

Hi Leuts,

ich versuche gerade ein einfache version von Mario in HTML/JavaScript/CSS zu programmieren. Funktioniert bis jetzt auch alles ganz gut, aber!:

mit folgendem Code soll er nach betätigen der Pfeil-nach-oben-Taste 30 pixel nach oben "springen" /animiert werden, dass funktioniert auch mit : if (e.keyCode == 38) { veraenderungDerPosition += 30;

aber ich möchte auch das er nach gewisser Zeit (ca. 2 Sekunden?) wieder um 30 pixel nach unten "verschoben wurd" aber wie mache ich das? Einfach nach dem veraenderDerPostition += 30; ein veraenderDerPosition -= 30; dran zuhängen geht nicht bzw. kann man es nicht erkennen weil das zu schnell geht!

Wie mache ich das jetzt? Danke in Vorraus an alle Antworten!!

Antwort
von tWeuster, 21

2 Sekunden Verzögerung ist ein delay. Wenn du Jquery benutzt, wäre dass dann auch dein Stichwort.

Ansonsten setzt du ein Interval oder ein Timeout und hebst es nach einmaligem Ausführen auch sofort wieder auf. Das Interval beträgt dann 2 Sekunden und nach den 2 Sekunden hebst du es wieder auf (Sonst hast du eine Endlosschleife) und führst dienen gewünschten Code aus.

Kommentar von fluffiknuffi ,

Er/sie sollte eher einen einzigen Game Loop und das Canvas-Element verwenden (mit window.requestAnimationFrame() ) statt... alles andere. :p

Antwort
von fluffiknuffi, 21

Du hast schon einen Game Loop (eine große Schleife), ja? Nun dann baust da du so etwas ein wie: 

veraenderungDerPosition -= 1;

So, dass es bei jedem Durchlauf ausgeführt wird. Aber zwei Dinge:

1. Vermutlich willst du eine Beschleunigung und keine feste Veränderung

beschleunigung -= 1;
position += beschleunigung;

2. Offensichtlich fällt deine Spielfigur ins Unendliche, dem musst du natürlich irgendwie entgegenwirken, z. B. in etwa so:

if (position < 0) position = 0;

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten