Drag & Drop Sprungphysik

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

  • Drag & Drop Sprungphysik

    Hallo liebe Game Maker Domäne!
    Wir wollten fragen, wie das Drag and Drop System mit dem Sprungzeug funktioniert, denn wir sind nämlich neu und wollten gerne ein Spiel erstellen!
    Ich würde etwa gerne so eine Gravity wie bei Super Mario haben, aber das mit dem Drag and Drop System, könnt ihr mir vielleicht helfen bzw. gute Einstellung vorschlagen, würde es echt gerne programmieren.
    LG Niceo :)
  • Also die Grundidee ist folgende:
    ihr habt einen vSpeed, der eure geschwindigkeit beim Fallen und springen definiert. Die gravity zieht immer einen fixen wert von vSpeed ab. Damit man das springen sieht, wird vSpeed jeden step zur y position addiert.

    im create:
    :action_gravity: = 0.9; gravity direction = 270 (das bedeutet nach unten)

    wenn du also die space taste drückst dann:
    :action_vspeed: = -16 (minus damit du nach oben springst nicht nach unten)

    im step event addierst du vspeed zu y und gravity zu vspeed, so wird vspeed immer größer, damit du irgendwann wieder richtung boden fällst:
    :action_variable: y += vspeed / oder :action_move1: nach oben mit vspeed
    :action_vspeed: += gravity (relativ)

    wenn du dann wieder mit dem boden kollidierst setzt du vspeed auf 0

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Den ersten Teil habe ich noch verstanden, aber nach (das bedeutet nach unten) habe ich es nicht mehr verstanden. Also bitte "wenn du also die space taste drückst dann" bis "setzt du vspeed auf 0" leichter erklären aber du bist echt nett, dass du dir Mühe machst Menschen zu helfen.
  • Auch wenn es erstmal etwas schwieriger ist würde ich direkt mit gml anfangen. Mit DnD zu programmieren ist nämlich furchtbar unübersichtlich und unflexibel. Es gibt da genug Kurse ,mittlerweile auch sehr gute deutschsprachige und der Vorteil ist meines erachtens das sich gml mehr wie ein buch liest/schreibt als herkömmliche programmiersprachen.

    Du brauchst also eine variable in der du festhälst ob du gesprungen bist, und diese wird beim landen wieder =false gesetzt. So kannst du luftsprünge unterbinden

    GML-Quellcode

    1. //create event
    2. jump = false;
    3. gravity =1;
    4. gravity_direction = 270;
    5. //step event
    6. if (jump = false)
    7. if (keyboard_check_pressed (vk_space)) {
    8. jump = true;
    9. vspeed -= 10;
    10. }
    11. If (place_meeting(x,y+1,obj_wall)) {
    12. jump = false; //wenn wir auf dem boden stehen
    13. //kann wieder gesprungen werden
    14. vspeed = 0;
    15. }
    Alles anzeigen
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel: