From 338da55169a79ba597f65b4172b3dfd1f89c343e Mon Sep 17 00:00:00 2001 From: Thomas Lavocat Date: Sun, 30 Apr 2023 17:23:11 +0200 Subject: [PATCH] princesse/collision: correction du bug pic+mur MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dans le bug du pic+mur, si princesse était en colluision avec un mur et des pics à la fois et toujours en train de marcher en direction du mur pour forcer la collision avec celui ci, alors les pics n'étaient pas traités car en ne récupérant que la dernière collision au lieu de toutes les collisions c'était au petit bonheur la chance. Maintenant le petit bonheur n'est plus là, la chance est partie et ça marche à chaque fois! --- princesse.gd | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/princesse.gd b/princesse.gd index 046e0b6..30c5e8c 100644 --- a/princesse.gd +++ b/princesse.gd @@ -270,13 +270,12 @@ func play_animation() -> void: func move_and_handle_collisions() -> void: # Bouge Princesse et réagis aux éléments avec lesquels elle rentre en collision var collision = move_and_slide() - if collision: - var collider = get_last_slide_collision().get_collider() - if collider is TileMap: - var tile_rid = get_last_slide_collision().get_collider_rid() - layer_of_collision = PhysicsServer2D.body_get_collision_layer(tile_rid) - if layer_of_collision == PICS_BLOCK_LAYER: - get_tree(). reload_current_scene() + for i in get_slide_collision_count(): + var collider : KinematicCollision2D= get_slide_collision(i) + var tile_rid = collider.get_collider_rid() + layer_of_collision = PhysicsServer2D.body_get_collision_layer(tile_rid) + if layer_of_collision == PICS_BLOCK_LAYER: + get_tree(). reload_current_scene() func get_coyote(table: Array):