princesse/prout: correction du dash
Le dash accroché au mur est maintenant fonctionnel Le dash par défaut fait avancer dans la précédente direction du personnage si le joueur ne donne pas de commande et sinon utilise la commande du joueur pour choisir la direction Le dash en diagonnale est maintenant cohérent avec le dash sur un seul axe.
This commit is contained in:
38
princesse.gd
38
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
|
||||
|
||||
Reference in New Issue
Block a user