Collision geht nicht!

  • GM 8

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

  • Collision geht nicht!

    Hallo liebe Game maker Gemeinde,

    ich habe ein Problem. Ich bin gerade dabei ein rpg zu erstellen. Ich will, dass der Spieler nicht durch ob_tree2 durchgehen kann. Dies geht aber irgendwie nicht. Ich habe schon alles mögliche probiert. ?( ;(



    ob_player:

    :event_step:

    GML-Quellcode

    1. if keyboard_check(vk_left){
    2. sprite_index = sp_player_left
    3. x -= 1
    4. }
    5. if keyboard_check(vk_right){
    6. sprite_index = sp_player_right
    7. x+=1
    8. }
    9. if keyboard_check(vk_up){
    10. sprite_index = sp_player_up
    11. y-=1
    12. }
    13. if keyboard_check(vk_down){
    14. sprite_index = sp_player_down
    15. y+=1
    16. }
    17. if place_meeting(x,y,ob_tree2){
    18. speed = 0
    19. }
    Alles anzeigen



    ob_tree2 ist solid.
  • Das geht deswegen nicht, weil keine Überprüfung von der Position stattfindet.
    speed wird zwar auf 0 gesetzt, aber nachdem du x und y für die Bewegung des Objektes verwendest,
    wird das nicht beeinflusst (nachdem speed eigentlich separat von den x- und y-Variablen läuft, welche einfach Koordinaten sind, die verändert werden und eben nichts mit speed zu tun haben)

    Damit sollte es funktionieren:

    GML-Quellcode

    1. if keyboard_check(vk_left)
    2. {
    3. if place_free(x-1,y) //überprüft die angegebene Position auf Kollisionen mit soliden Objekten
    4. {
    5. sprite_index = sp_player_left
    6. x -= 1
    7. }
    8. }


    Dann brauchst du auch

    GML-Quellcode

    1. if place_meeting(x,y,ob_tree2)
    2. speed = 0

    gar nicht mehr.

    //edit
    Überflüssige Klammer entfernt