Bewegungen... aber WIE???

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

  • Bewegungen... aber WIE???

    Hallöle... ich bins mal wieder!...
    Hab ne frage zu nem warscheilich ganz einfachem thema...
    Ich mache das immer falsch, weis leider nicht wie ichs beschreiben soll. Ich lass euch mal nen kleines beispiel da...! Vlt. (glaub ich mal) könnt ihr mir helfen... :ops:
    thx mal wieder im vorraus!^^...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von -=-XDevil-=- ()

  • auch wenn ich nich ganz weiss was das problem sein soll muss ich doch sagen dass das sehr, sehr kompliziert gelöst ist^^ man kann das auch ganz einfach mit nur einem objekt machen Oo
    "Leben. Erzähl' mir bloß nichts vom Leben."
  • lol, das nenne ich 'hardcoded'
    gefixte Version:
    gm-dev.net/gm-d/xD.gmk
    EDIT: Alles in 1 obj verpackt + diagonale Bewegung eingebaut.
    EDIT2:
    Für alle, die keinen GM7 haben:
    1) Sprites gleich lassen
    das player-Object:
    Information about object: obj_player

    Sprite: right
    Solid: false
    Visible: true
    Depth: 0
    Persistent: false
    Parent: <no parent>
    Mask: <same as sprite>

    Create Event:
    set variable global.lbw to up

    Step Event:
    execute code:

    if keyboard_check(vk_left) {
    if position_empty(x-6,y) {
    sprite_index = left_walk
    x -= 4
    global.lbw = left
    }
    }
    if keyboard_check(vk_right) {
    if position_empty(x+6,y) {
    sprite_index = right_walk
    x += 4
    global.lbw = right
    }
    }
    if keyboard_check(vk_up) {
    if position_empty(x,y-6) {
    sprite_index = up_walk
    y -= 4
    global.lbw = up
    }
    }
    if keyboard_check(vk_down) {
    sprite_index = down_walk
    y += 4
    global.lbw = down
    }
    depth -= y

    Key Release Event for <any key> Key:
    execute code:

    if keyboard_check(vk_nokey) sprite_index = global.lbw



    -gn ;)
    Kaldor - Das erste echte MMORTS

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

  • Schau dir mal EDIT2 an.

    (Ich hoffe, das fällt jetzt nicht unter megaspam ;) Jetzt hoffentlich nicht mehr...)

    EDIT: Um das Example zu öffnen, musst du GM7 haben.
    Wenn du auch ein anit GM7 user bist, mache:
    CREATE

    GML-Quellcode

    1. global.lbw = up

    STEP

    GML-Quellcode

    1. if keyboard_check(vk_left) {
    2. if position_empty(x-6,y) {
    3. sprite_index = left_walk
    4. x -= 4
    5. global.lbw = left
    6. }
    7. }
    8. if keyboard_check(vk_right) {
    9. if position_empty(x+6,y) {
    10. sprite_index = right_walk
    11. x += 4
    12. global.lbw = right
    13. }
    14. }
    15. if keyboard_check(vk_up) {
    16. if position_empty(x,y-6) {
    17. sprite_index = up_walk
    18. y -= 4
    19. global.lbw = up
    20. }
    21. }
    22. if keyboard_check(vk_down) {
    23. sprite_index = down_walk
    24. y += 4
    25. global.lbw = down
    26. }
    27. depth -= y
    Alles anzeigen

    KEY RELEASE [any key]

    GML-Quellcode

    1. if keyboard_check(vk_nokey) sprite_index = global.lbw
    Kaldor - Das erste echte MMORTS

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

  • Komisch... .Das verstehe ich nicht so gaaanz... ich habe noch irgentwas falsch!...
    ...(aber was :hau: )...

    Und noch was... wie krieg ich dass hin das ich, nicht auf der stelle laufe wenn ich links und rechts gleichzeitig drücke?
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von -=-XDevil-=- ()

  • Und noch was... wie krieg ich dass hin das ich, nicht auf der stelle laufe wenn ich links und rechts gleichzeitig drücke?

    STEP:

    GML-Quellcode

    1. if ((keyboard_check(vk_left) && keyboard_check(vk_right)) sprite_index = global.lbw
    Kaldor - Das erste echte MMORTS
  • @2.
    Step event vom Player, unten dranfügen
    3) Baum solid machen, bzw. EIne Kollision bit dem Baum obj. machen und da folgenden code reintun:

    GML-Quellcode

    1. speed = 0
    Kaldor - Das erste echte MMORTS
  • Argh!... :P
    Ich fasse noch mal zusammen...

    Für:

    CREATE:

    global.lbw = up

    STEP:

    if keyboard_check(vk_left) {
    if position_empty(x-6,y) {
    sprite_index = left_walk
    x -= 4
    global.lbw = left
    }
    }
    if keyboard_check(vk_right) {
    if position_empty(x+6,y) {
    sprite_index = right_walk
    x += 4
    global.lbw = right
    }
    }
    if keyboard_check(vk_up) {
    if position_empty(x,y-6) {
    sprite_index = up_walk
    y -= 4
    global.lbw = up
    }
    }
    if keyboard_check(vk_down) {
    sprite_index = down_walk
    y += 4
    global.lbw = down
    }
    depth -= y

    und für:

    KEY RELEASE [any key]:

    if keyboard_check(vk_nokey) sprite_index = global.lbw

    ...

    Wo kommt jetzt...

    speed = 0

    und....

    if ((keyboard_check(vk_left) && keyboard_check(vk_right)) sprite_index = global.lbw

    hin???

    ...


    Dann noch was... ich habe das Objekt ,,Baum,, (ich weis toller name..-_-) Solide gemacht! Und kolidiere leider auch mit z.b.: nem Hamburger (den der spieler verdrücken)... also der bleibt dann stehen!... ich weis das in ,, ....if position_empty(x-6,y) {.... ,, der fehler ist... (glaub ich zumindestens!^_^....

    ... :D xD könntest du (falls du nicht zu viel zu tuen hast) mir so nen code scshnippsel da lassen!?...^^

    THX schon mal!...
  • Boah das ist ja ein Spam Thread^^
    Egal, hier mal ne Zusammefassung mit Codeschnipsel:
    CREATE :

    GML-Quellcode

    1. global.lbw = up

    STEP

    GML-Quellcode

    1. if keyboard_check(vk_left) {
    2. sprite_index = left_walk
    3. x -= 4
    4. global.lbw = left
    5. }
    6. if keyboard_check(vk_right) {
    7. sprite_index = right_walk
    8. x += 4
    9. global.lbw = right
    10. }
    11. if keyboard_check(vk_up) {
    12. sprite_index = up_walk
    13. y -= 4
    14. global.lbw = up
    15. }
    16. if keyboard_check(vk_down) {
    17. sprite_index = down_walk
    18. y += 4
    19. global.lbw = down
    20. }
    21. depth -= y
    22. if ((keyboard_check(vk_left) && keyboard_check(vk_right)) sprite_index = global.lbw
    Alles anzeigen


    KEY RELEASE [any key] :

    GML-Quellcode

    1. if keyboard_check(vk_nokey) sprite_index = global.lbw


    COLLISION [Baum]

    GML-Quellcode

    1. speed = 0

    COLLISION[Hamburger]

    GML-Quellcode

    1. with(other) {
    2. instance_destroy();
    3. }
    4. global.hunger -= 5 // Variable, die verändert wird


    -gn
    Kaldor - Das erste echte MMORTS
  • Benutzer online 6

    6 Besucher