Problem mit Kollesion

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

  • Problem mit Kollesion

    Hey,
    ich habe ein Problem mit der Kollesion.
    Und zwar bleibe ich immer wenn ich gegen eine Wand renne in ihr stecken.
    Weiß ein wodran das liegt?

    GML-Quellcode

    1. if keyboard_check(ord("A"))
    2. if place_free(x,y) = true
    3. {
    4. hspeed -= 10
    5. sprite_index = sprite0
    6. image_speed = 1/4
    7. }
    8. if keyboard_check(ord("D"))
    9. if place_free(x,y) = true
    10. { sprite_index = sprite5
    11. image_speed = 1/4
    12. hspeed += 10}
    13. if keyboard_check(ord("W"))
    14. {
    15. if place_free(x,y) == true
    16. vspeed -= 10
    17. sprite_index = sprite1
    18. image_speed = 1/4
    19. }
    20. if keyboard_check(ord("S"))
    21. {
    22. if place_free(x,y) == true
    23. vspeed += 10
    24. sprite_index = sprite4
    25. image_speed = 1/4
    26. }
    Alles anzeigen


    http://sendvid.com/an0koubv


    Danky im vorraus :D
    Hallu :3
  • am besten du gehst den schritt, checkst dann if place_free, und falls true dann x = xprevious; y = yprevious; also wieder zurück zur Anfangsposition.
    Erweitern wir das ganze, in dem wir seperat die x Achse checken und gegebenenfalls x = xprevious setzen sowie das selbe seperat für y. Noch weiter gedacht kommt man zu 2 verschachtelten for-Schleifen in denen man bei x,y startet und dann jewiels immer einen pixel weiter checkt bis maximal zur position x + hspd; y + vspd; entsteht beispielsweise eine kollision nach Erhöhung des y Werts, muss x = xx; y = yy-1 gesetzt und die Schleife unterbrochen werden.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel: