From ab71180eaba42782ac254b3f392263db147902f8 Mon Sep 17 00:00:00 2001 From: Thomas Lavocat Date: Sat, 29 Apr 2023 22:27:00 +0200 Subject: [PATCH] =?UTF-8?q?princesse/coyote:=20am=C3=A9lioration=20de=20la?= =?UTF-8?q?=20d=C3=A9tection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Si la princesse touchait la plateforme pour moi de la durée du buffer, il se trouvait que ça buggait. A la place de regarder uniquement le plus ancien élément du buffer de coyote, je fais un OU logique entre tous ses éléments, comme ça si on a éffleuré une plateforme même pour une frame ça compte. --- princesse.gd | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/princesse.gd b/princesse.gd index 29e9cba..86640dc 100644 --- a/princesse.gd +++ b/princesse.gd @@ -264,6 +264,13 @@ func move_and_handle_collisions() -> void: if layer_of_collision == PICS_BLOCK_LAYER: get_tree(). reload_current_scene() + +func get_coyote(table: Array): + var result = false + for i in table: + result = result or i + return result + func read_input() -> void: # Lis les commandes du joueur pour piloter Princesse @@ -273,7 +280,7 @@ func read_input() -> void: # Le joueur veut-il sauter ou kicker ? if Input.is_action_just_pressed("jump" + action_suffix): # Peut-il sauter ? - if ground_far_detect.is_colliding() or (is_on_floor() or coyote_ground[0]): + if ground_far_detect.is_colliding() or (is_on_floor() or get_coyote(coyote_ground)): need_jump=true # Peut-il kicker ? if grab_wall: @@ -285,7 +292,7 @@ func read_input() -> void: else: kick_direction = -1 # Dès qu'il peut et veut sauter, déclencher le saut - if need_jump and (is_on_floor() or coyote_ground[0]): + if need_jump and (is_on_floor() or get_coyote(coyote_ground)): need_jump = false if not jumping: jumping = true