princesse/contrôle aérien: meilleur feeling en l'air
Le contrôle aérien est rétabli correctement de manière globale. La princesse accélère et décélère 3 fois plus lentement dans l'air. Avec l'exception que ses deux premières frame d'accélération dans l'air sont immédaites pour un meilleur feeling bien connecté à la manette.
This commit is contained in:
14
princesse.gd
14
princesse.gd
@@ -157,8 +157,6 @@ func walk(direction:int) -> float:
|
|||||||
init_walk_state()
|
init_walk_state()
|
||||||
return velocity.x
|
return velocity.x
|
||||||
|
|
||||||
if velocity.x == 0 and not walking:
|
|
||||||
init_walk_state()
|
|
||||||
|
|
||||||
# Si le personnage est dans l'air, il aura une friction plus faible lors de
|
# Si le personnage est dans l'air, il aura une friction plus faible lors de
|
||||||
# la décélération.
|
# la décélération.
|
||||||
@@ -210,7 +208,15 @@ func walk(direction:int) -> float:
|
|||||||
walking_step = table.size() - 1
|
walking_step = table.size() - 1
|
||||||
|
|
||||||
if walking:
|
if walking:
|
||||||
walking_step = min(walking_step+1, X_SPEED_TABLE.size() -1)
|
walk_incr_reserve += 1
|
||||||
|
# appliquer le nombre de frames nécéssaire pour décrémenter, dépend
|
||||||
|
# de où est le personnage (air vs sol)
|
||||||
|
if walking_step > 2:
|
||||||
|
if walk_incr_reserve >= threshold:
|
||||||
|
walk_incr_reserve = 0
|
||||||
|
walking_step = min(walking_step+1, X_SPEED_TABLE.size() -1)
|
||||||
|
else:
|
||||||
|
walking_step+=1
|
||||||
init_decel = true
|
init_decel = true
|
||||||
else:
|
else:
|
||||||
# Lors de la première frame de la décélération, initialiser la valeur
|
# Lors de la première frame de la décélération, initialiser la valeur
|
||||||
@@ -239,8 +245,6 @@ func walk(direction:int) -> float:
|
|||||||
return speed * direction + velocity.x
|
return speed * direction + velocity.x
|
||||||
else:
|
else:
|
||||||
return speed * direction
|
return speed * direction
|
||||||
else:
|
|
||||||
init_walk_state()
|
|
||||||
return velocity.x
|
return velocity.x
|
||||||
|
|
||||||
func fall() -> float:
|
func fall() -> float:
|
||||||
|
|||||||
@@ -263,13 +263,14 @@ slide_on_ceiling = false
|
|||||||
floor_constant_speed = true
|
floor_constant_speed = true
|
||||||
script = ExtResource("1_dkp7s")
|
script = ExtResource("1_dkp7s")
|
||||||
JUMPING_SPEED = 230
|
JUMPING_SPEED = 230
|
||||||
|
KICK_JUMP_LIMITER = 0.73
|
||||||
COYOTE_LENGTH = 7
|
COYOTE_LENGTH = 7
|
||||||
COYOTE_GRAB_LENGTH = 4
|
COYOTE_GRAB_LENGTH = 4
|
||||||
WALK_INCR_AIR = 10
|
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
sprite_frames = SubResource("SpriteFrames_q52wx")
|
sprite_frames = SubResource("SpriteFrames_q52wx")
|
||||||
animation = &"walk"
|
animation = &"falling_diagonals"
|
||||||
|
frame_progress = 0.975648
|
||||||
|
|
||||||
[node name="wall_detect_left" type="RayCast2D" parent="."]
|
[node name="wall_detect_left" type="RayCast2D" parent="."]
|
||||||
target_position = Vector2(-8, 0)
|
target_position = Vector2(-8, 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user