wie kann ich mich bewegen?

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

  • Linkes bein vor, rechtes bein vor..


    nein scherz bei seite...

    du meinst sicherlich in deinem spiel...

    also im
    LEFT-event

    GML-Quellcode

    1. hspeed = -12;


    release-left:

    GML-Quellcode

    1. hspeed = 0;


    right:

    GML-Quellcode

    1. hspeed = 12;


    release right

    GML-Quellcode

    1. hspeed = 0;



    ps: alles mit Execute a Piece of code
    :)

    Spoiler anzeigen


    I am an according to the gml n00b test!

  • Andere Möglichkeit für ein Top-Down-Spiel:

    WASD-Steuerung:

    GML-Quellcode

    1. if (keyboard_check(ord('W')))
    2. y -= 4;
    3. if (keyboard_check(ord('S')))
    4. y += 4;
    5. if (keyboard_check(ord('A')))
    6. x -= 4;
    7. if (keyboard_check(ord('D')))
    8. x += 4;


    Pfeiltastensteuerung:

    GML-Quellcode

    1. if (keyboard_check(vk_up))
    2. y -= 4;
    3. if (keyboard_check(vk_down))
    4. y += 4;
    5. if (keyboard_check(vk_left))
    6. x -= 4;
    7. if (keyboard_check(vk_right))
    8. x += 4;


    Das müsste dann ins Step-Event hinein.

    PS: das hab ich aus dem fantastischen GML-Tut von Windapple (Danke!!) GML - Die Einsteigerreferenz
  • Oder du prüfst zuerst, ob die Stelle, an die sich das Objekt hinbewegen soll, frei ("collision_free") ist. Das würde dann so aussehen:

    GML-Quellcode

    1. if (keyboard_check(ord('W')))
    2. if (place_free(x + 0, y + -4))
    3. y -= 4;
    4. if (keyboard_check(ord('S')))
    5. if (place_free(x + 0, y + 4))
    6. y += 4;
    7. if (keyboard_check(ord('A')))
    8. if (place_free(x + -4, y + 0))
    9. x -= 4;
    10. if (keyboard_check(ord('D')))
    11. if (place_free(x + 4, y + 0))
    12. x += 4;
    Alles anzeigen


    EDIT: Sorry, mir ist ein dummer Fehler passiert!!! Der Code wurde (zum 2. Mal) ausgebessert!!!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Toshiro ()

  • Toshiro schrieb:

    Oder du prüfst zuerst, ob die Stelle, an die sich das Objekt hinbewegen soll, frei ("collision_free") ist. Das würde dann so aussehen:

    GML-Quellcode

    1. if (keyboard_check(ord('W')))
    2. if (!position_meeting(x + 0, y + -4,solid))
    3. y -= 4;
    4. if (keyboard_check(ord('S')))
    5. if (!position_meeting(x + 0, y + 4,solid))
    6. y += 4;
    7. if (keyboard_check(ord('A')))
    8. if (!position_meeting(x + -4, y + 0,solid))
    9. x -= 4;
    10. if (keyboard_check(ord('D')))
    11. if (!position_meeting(x + 4, y + 0,solid))
    12. x += 4;
    Alles anzeigen


    EDIT: Sorry, mir ist ein dummer Fehler passiert!!! Der Code wurde ausgebessert!!!


    Ich glaub das Ganze funktioniert mit 'solid' nicht.
    solid gibt true oder false zurück. Und nicht alle Instanzen, die Solid sind...
    fabse64 -> haiyyu