glatte wände

  • GM 7
  • glatte wände

    hallo ich ma wieder ein klein problemchen und zwar wie macht man das wenn man gegen eine wände läuft( :headtouch: xD) und dagegen drückt das man auch zb nach rechts oder links gehen kann

    ich benutze bei der bewegung zb keyboard_check(ord('W')) {y-=5}
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • wersuchs mal so...:

    GML-Quellcode

    1. if keyboard_check(ord('W')) {direction=90; speed=4}
    2. if keyboard_check(ord('D')) {direction=0; speed=4}
    3. if keyboard_check(ord('S')) {direction=270; speed=4}
    4. if keyboard_check(ord('A')) {direction=180; speed=4}
    5. if keyboard_check(ord('W')) && keyboard_check(ord('D')) {direction=45; speed=4}
    6. if keyboard_check(ord('W')) && keyboard_check(ord('A')) {direction=135; speed=4}
    7. if keyboard_check(ord('A')) && keyboard_check(ord('S')) {direction=225; speed=4}
    8. if keyboard_check(ord('S')) && keyboard_check(ord('D')) {direction=315; speed=4}
    9. if (!position_empty(x+lengthdir_x(55+speed,direction+2),y+lengthdir_y(55+speed,direction+2))) direction-=45
    10. if (!position_empty(x+lengthdir_x(56+speed,direction-2),y+lengthdir_y(56+speed,direction-2))) direction+=45
    Alles anzeigen
  • ne das klappt leider nicht :S ...aber am besten wäre es wenn ich bei meiner jetzigen steuerung bleibe
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • ganz einfach, du hast ja wohl nicht nur y-=5 als richtung ^^

    wenn du nun zB nach oben und rechts läufst und ne wand rechts ist, dann muss einfach die "rechts"-richtung blockiert werden, die "oben"-richtung aber nicht, das geht einfach so:

    if keyboard_check.... and (place_free/place_empty(...)) // free wenn wände solid sind, andernfalls empty

    {

    }

    das muss bei jeder bewegungsrichtung gemacht werden, so wird immer die richtung blockiert in der die wand steht, die andere aber nicht
  • omg soo leicht ging das :headtouch:
    ich hab so viel ausgetestet und dann gibs so ne leichte lösung :pinch:

    danke schön :)
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)