diff --git a/princesse.gd b/princesse.gd index 3667019..e1f37de 100644 --- a/princesse.gd +++ b/princesse.gd @@ -267,14 +267,8 @@ func dash() -> void: if dash_step >= 0: dash_step -= 1 - var doubley = 1 - var doublex = 1 - if abs(dash_direction_y) and not abs(dash_direction_x): - doubley=1.1 - if abs(dash_direction_x) and not abs(dash_direction_y): - doublex=1.1 - velocity.y = DASH_SPEED_TABLE[dash_step] * DASH_SPEED * dash_direction_y * doubley - velocity.x = DASH_SPEED_TABLE[dash_step] * DASH_SPEED * dash_direction_x * doublex + velocity.y = DASH_SPEED_TABLE[dash_step] * DASH_SPEED * dash_direction_y + velocity.x = DASH_SPEED_TABLE[dash_step] * DASH_SPEED * dash_direction_x else: cancel_dash() @@ -386,22 +380,31 @@ func read_input() -> void: Input.start_joy_vibration(0, 1, 0.5, 0.2) available_dashs -=1 dashing = true - dash_step = DASH_SPEED_TABLE.size()-1 var axis_x = Input.get_axis( "move_left" + action_suffix, "move_right" + action_suffix ) + var axis_y = Input.get_axis( + "move_up" + action_suffix, + "move_down" + action_suffix + ) if not is_zero_approx(axis_x): if axis_x < 0: dash_direction_x = -1 else: dash_direction_x = 1 else: - dash_direction_x = 0 - var axis_y = Input.get_axis( - "move_up" + action_suffix, - "move_down" + action_suffix - ) + # Si le joueur tient le mur, alors, il ne faut pas dasher dans + # dans le mur en cas de dash + if grab_wall: + direction = -direction + # Si le joueur n'appuye sur rien, alors dasher en avant par + # défaut + dash_direction_x = direction + # Si le joueur spécifie une commande, alors, ne pas supposer + # Qu'il veuille aller en avant + if not is_zero_approx(axis_y): + dash_direction_x = 0 if not is_zero_approx(axis_y): if axis_y < 0: dash_direction_y = -1 @@ -409,7 +412,12 @@ func read_input() -> void: dash_direction_y = 1 else: dash_direction_y = 0 - print("dash x", axis_x, "y", axis_y) + # Limiter le dash en diagonnale car sinon il est trop grand + # par rapport à un dash dans une seule direction + if dash_direction_x and dash_direction_y: + dash_step = DASH_SPEED_TABLE.size()-3 + else: + dash_step = DASH_SPEED_TABLE.size()-1 func compute_state() -> void: # Met à jour une partie de l'état de la princesse