Doppelsprung, aber wie?
- GM 6
-
-
Hi Terra,
das machst du am besten mit Variablen. Ich erklär dir mal, wie das geht:
Als erstes definierst du im Create Event die Variable 'sprung'. Das geht folgendermaßen:Jetzt musst du in dein sprung-Event noch eine Abfrage einbauen, ob du bereits zwei mal gesprungen bist. Das machst du so:GML-Quellcode
- if keyboard_check_pressed(vk_up) and !place_free(x,y+1) && (sprung < 2) { // Deine Abfrage + Abfrage, ob du bereits zwei mal gesprungen bist
- sprung += 1; // Wenn nein, wird zur Variable sprung der Wert 1 addiert...
- vspeed -= 7; // ...und dein Spieler springt
- } else
- sprung = 0; // Wenn sich der Spieler auf dem Boden befindet, wird der Variable sprung wieder der Wert 0 zugewiesen
-fabse64 -
Hi fabse64,
danke schonmal für deine antwort, allerdings habe ich das problem noch nicht gelöst.
das
prüft ja immernoch, ob er kontakt zum boden hat. und wenn ich einen doppelsprung mache, soll er ja in der luft ein 2. mal springen können. das ist noch nicht möglich.
Gruß Terra -
Achso, sorry, hab' mich ein wenig vertan... So sollte es aber gehen:
Createsprung-Event:[/gml]if keyboard_check_pressed(vk_up) && (sprung < 2) { // Deine Abfrage + Abfrage, ob du bereits zwei mal gesprungen bist
sprung += 1; // Wenn nein, wird zur Variable sprung der Wert 1 addiert...
vspeed -= 7; // ...und dein Spieler springt
}
if (!(place_free(x, y + 1))
sprung = 0;
[/gml]
MfG,
-fabse64 -
Mhm, ein kleiner fehler ist noch drinne.
es klappt, ich kann 2mal hintereinander hüpfen und wenn er landet kann ich es auch nochmal machen.
allerdings kann ich auch 3mal hintereinander hüpfen. wenn der spieler dann landet kann ich garnicht mehr hüpfen.
kann mir nicht erklären, wie das kommt
edit: Problem gelöst, habe einfach das place free nach vorne gezogen!
Danke!Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Terra ()