3er sprung?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 3er sprung?

    Versuche es i-wie hinzubekommen dass man 3 mal springen kann (dreiersprung?) aber er springt nur zwei mal (doppelsprung). Wie macht man das denn? Is'n Jump & Run, is klar nee.
    :( :( ;) :P 8) :D ;( :rolleyes: :huh: :S :love: X( 8| ?( :cursing: :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :?: :!: :gmlove: :fresse: :sauf: :deal: :headtouch: :heul: :motz: :para: :shifty: :vogel:
  • Ich würde eine Variable machen z.B. spruengeuebrig. (meine variablen haben immer so tolle namen ^^) der spieler kann nur springen, wenn sprengeuebrig nicht 0 ist. jedesmal wenn der spieler den boden berührt wird spruengeuebrig=3 gesetzt. bei jedem sprung wird die variable 1 kleiner. wenn sie 0 ist, man also 3-mal gesprungen ist, kann man nicht mehr weiter springen und fällt.
  • TheJokero schrieb:

    Ne lass ma ich hab die scheiße jetzt gelöscht. Ich brauch nur den Code.
    Du bist ja lustig. So funktioniert das nicht.

    Damit wir überhaupt Ansätze machen können, brauchen wir schon mehr Informationen. Wie hast du den Sprung umgesetzt? Veränderst du die vspeed? Oder löst du es deinem Schreibstil entsprechend mit Paths?
    Generell ist FlashXenon's Ansatz auch schon die Lösung. Du benötigst eine Variable, die angibt, wie viel Sprünge schon passiert sind, bzw. wie viele noch passieren dürfen. Der Code der deinen Sprung initiiert muss erstens nur dann ausgeführt werden, wenn besagte Variable über 0 bzw. unter 3 ist und zweitens eine Zeile beinhalten, die die Variable um 1 erhöht bzw. erniedrigt.


  • Create:

    GML-Quellcode

    1. right = 1;
    2. jump = 0;


    Step:

    GML-Quellcode

    1. //gravity
    2. if place_free(x,y+1)
    3. {
    4. gravity = 0.5;
    5. }
    6. else
    7. {
    8. gravity = 0;
    9. }


    GML-Quellcode

    1. if !place_free(x,y+1) and (keyboard_check_pressed(vk_up))
    2. vspeed = -8;
    3. jump = 1;
    4. if(keyboard_check_released(vk_up) && vspeed < 0)
    5. vspeed /= 2;


    GML-Quellcode

    1. if vspeed >0 and !place_free(x,y+1) {jump = 0;}
    :( :( ;) :P 8) :D ;( :rolleyes: :huh: :S :love: X( 8| ?( :cursing: :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :?: :!: :gmlove: :fresse: :sauf: :deal: :headtouch: :heul: :motz: :para: :shifty: :vogel:
  • Ist doch eigentlich ganz einfach:

    Du hast eine Variable, die angibt ob man noch springen kann. Wenn sie kleiner als 3 ist kannst du springen, bei jedem drücken der Taste mit der du springst, wird die Variable um 1 erhöht. Heißt, 1,2,3. Danach ist sie nicht mehr kleiner als 3 und du kannst auch nicht mehr weiter springen, da der Code dann nicht mehr ausgeführt wird.

    Create Event:

    GML-Quellcode

    1. global.sprung = 0


    KeyBoard Press-Up:

    GML-Quellcode

    1. global.sprung +=+1; // Erhöht die Variable Sprung um 1
    2. if sprung < 3{
    3. Dein Code zum Springen;}


    Und dann wenn du wieder den Boden berührst, setzt du die Variable global.sprung wieder auf 0, und kannst wieder 3 mal springen.
    Dieser Beitrag wurde bereits 1909 mal editiert, zuletzt von »Sharivari« (Morgen, 19:89)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sharivari ()

  • Vielen Dank aber das funktioniert auch nicht. Jetzt kann ich unendlich oft springen.

    Edit1: Oder ich kann nur ein Mal springen...

    Edit2: Es ging nachdem ich aus "<Up>" - "press<Up>" gemacht habe. Problem gelöst, danke.
    :( :( ;) :P 8) :D ;( :rolleyes: :huh: :S :love: X( 8| ?( :cursing: :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :?: :!: :gmlove: :fresse: :sauf: :deal: :headtouch: :heul: :motz: :para: :shifty: :vogel:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von TheJokero ()