Servus Community,
Ich habe für eines meiner derzeitigen Projekte, nämlich ein Platformer, folgendes Problem.
Wenn ich mich über einen Abgrund in der gleichen größe wie der der Spielers bewege (16x16), dass der Player entweder direkt über dieses Loch rüber läuft und es einfach ignoriert, oder das er sich festbuggt und nicht mehr weiter läuft. Damit ihr direkt wisst was ich meine habe ich HIER nochmal alle benötigten Daten samt .exe bereitgestellt!
Hier ist der Movement-Code des Players :
evtl. könnte die Block-Kollision auch irgentwie die Ursache sein?
Im .rar Archiv im Anhang gibt es zudem noch die Codes ohne .exe, für die die einen schnelleren Download haben wollen und ungefähr wissen was ich meine.
LG Marvin159
Ich habe für eines meiner derzeitigen Projekte, nämlich ein Platformer, folgendes Problem.
Wenn ich mich über einen Abgrund in der gleichen größe wie der der Spielers bewege (16x16), dass der Player entweder direkt über dieses Loch rüber läuft und es einfach ignoriert, oder das er sich festbuggt und nicht mehr weiter läuft. Damit ihr direkt wisst was ich meine habe ich HIER nochmal alle benötigten Daten samt .exe bereitgestellt!
Hier ist der Movement-Code des Players :
GML-Quellcode
- image_speed = global.PlayerImageSpeed
- //Überprüft ob der Player Fällt oder grade Springtif vspeed < 0 { global.PlayerJumping = 1 global.PlayerFalling = 0 }
- if vspeed > 0 { global.PlayerJumping = 0 global.PlayerFalling = 1 }
- if speed = 0 { global.PlayerJumping = 0 global.PlayerFalling = 0 }
- //Ist der Player in der Luft?if place_free(x,y + 1) { gravity = 0.5 }else { gravity = 0.0 }
- if keyboard_check(ord('A')) and !keyboard_check(ord('D')) { if place_free(x - global.PlayerMoveSpeed,y) { //Der Spieler hält also A und nicht D gedrückt. global.PlayerIdleLeft = 0 global.PlayerIdleRight = 0 global.PlayerMoveLeft = 1 //Der Player rennt nach Links. global.PlayerMoveRight = 0 x -= global.PlayerMoveSpeed //Bewegt den Spieler in die angegebene Richtung. } else { global.PlayerIdleLeft = 1 //Links ist eine Wand? Bleib stehen und guck nach Links. global.PlayerIdleRight = 0 global.PlayerMoveLeft = 0 global.PlayerMoveRight = 0 } } if keyboard_check(ord('D')) and !keyboard_check(ord('A')) { if place_free(x + global.PlayerMoveSpeed,y) { //Der Spieler hält also A und nicht D gedrückt. global.PlayerIdleLeft = 0 global.PlayerIdleRight = 0 global.PlayerMoveLeft = 0 global.PlayerMoveRight = 1 //Der Player rennt nach Rechts. x += global.PlayerMoveSpeed //Bewegt den Spieler in die angegebene Richtung. } else { global.PlayerIdleLeft = 0 global.PlayerIdleRight = 1 //Rechts ist eine Wand? Bleib stehen und guck nach Rechts. global.PlayerMoveLeft = 0 global.PlayerMoveRight = 0 } } if keyboard_check(ord('D')) and keyboard_check(ord('A')) { global.PlayerIdleLeft = 0 global.PlayerIdleRight = 1 //Rechts ist eine Wand? Bleib stehen und guck nach Rechts. global.PlayerMoveLeft = 0 global.PlayerMoveRight = 0 }
- if keyboard_check_pressed(ord('W')){ if !place_free(x,y + 1) { vspeed = -global.PlayerJumpFirst } else if keyboard_check_pressed(ord('W')) && global.PlayerJumpTwice = 1 { global.PlayerJumpTwice = 0 vspeed = -global.PlayerJumpSecond }}
- if keyboard_check_released(ord('W')){ if vspeed < 0 { vspeed /= 2 }}
evtl. könnte die Block-Kollision auch irgentwie die Ursache sein?
Im .rar Archiv im Anhang gibt es zudem noch die Codes ohne .exe, für die die einen schnelleren Download haben wollen und ungefähr wissen was ich meine.
LG Marvin159
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Marvin159 ()