Fix RunState

This commit is contained in:
TheThomaas 2026-09-27 10:17:24 +02:00
parent 33ea8bbc38
commit 082f834d61
5 changed files with 19 additions and 24 deletions

View file

@ -8,6 +8,7 @@
[ext_resource type="Script" uid="uid://2agliol5dulc" path="res://game/player/StateMachine/WalkState.gd" id="4_lg056"]
[ext_resource type="Script" uid="uid://dr5p8ygj25w6x" path="res://game/player/StateMachine/JumpState.gd" id="6_lwgph"]
[ext_resource type="Script" uid="uid://dn5idrvu68k83" path="res://game/player/StateMachine/AimState.gd" id="7_kxr4l"]
[ext_resource type="Script" uid="uid://dpcfffs3vt5co" path="res://game/player/StateMachine/RunState.gd" id="8_j4mf1"]
[sub_resource type="Curve" id="Curve_kxr4l"]
_limits = [0.0, 10.0, 0.0, 1.0]
@ -82,6 +83,7 @@ script = ExtResource("6_lwgph")
script = ExtResource("7_kxr4l")
[node name="RunState" type="Node" parent="StateMachine" unique_id=1345421775]
script = ExtResource("8_j4mf1")
[node name="InputManagementComponent" type="Node" parent="." unique_id=1981951371]
script = ExtResource("2_r5dqo")

View file

@ -51,13 +51,6 @@ func input_management() -> void:
if Input.is_action_just_pressed(play_char.aim_cam_action):
transitioned.emit(self, "AimState")
if play_char.continious_run:
if Input.is_action_just_pressed(play_char.run_action):
if play_char.walk_or_run == "WalkState": play_char.walk_or_run = "RunState"
elif play_char.walk_or_run == "RunState": play_char.walk_or_run = "WalkState"
else:
play_char.walk_or_run = "RunState" if Input.is_action_pressed(play_char.run_action) else "WalkState"
func move(delta : float) -> void:
#manage the character movement

View file

@ -59,6 +59,7 @@ var move_left_action : StringName
var move_right_action : StringName
var run_action : StringName
var jump_action : StringName
var dodge_action : StringName
var aim_cam_action : StringName
@export_group("Model variables")
@ -100,6 +101,7 @@ func _process(delta: float):
modify_model_orientation(delta)
func _physics_process(_delta : float):
update_run_toggle()
modify_physics_properties()
move_and_slide()
@ -159,3 +161,9 @@ func squash_and_strech(value : float, timing : float):
#foot_step_audio.play()
#)
func update_run_toggle() -> void:
if continious_run:
if Input.is_action_just_pressed(run_action):
walk_or_run = "WalkState" if walk_or_run == "RunState" else "RunState"
else:
walk_or_run = "RunState" if Input.is_action_pressed(run_action) else "WalkState"

View file

@ -49,17 +49,10 @@ func input_management() -> void:
if Input.is_action_pressed(play_char.jump_action) if play_char.auto_jump else Input.is_action_just_pressed(play_char.jump_action):
transitioned.emit(self, "JumpState")
if play_char.continious_run:
#course continue : un nouvel appui sur la touche repasse a la marche
if Input.is_action_just_pressed(play_char.run_action):
stop_running()
else:
#course maintenue : on court tant que la touche est enfoncee
if !Input.is_action_pressed(play_char.run_action):
stop_running()
if Input.is_action_just_pressed(play_char.aim_cam_action):
transitioned.emit(self, "AimState")
func stop_running() -> void:
play_char.walk_or_run = "WalkState"
if play_char.walk_or_run == "WalkState":
transitioned.emit(self, "WalkState")
func move(delta : float) -> void:

View file

@ -52,9 +52,7 @@ func input_management() -> void:
if Input.is_action_just_pressed(play_char.aim_cam_action):
transitioned.emit(self, "AimState")
var wants_run : bool = Input.is_action_just_pressed(play_char.run_action) if play_char.continious_run else Input.is_action_pressed(play_char.run_action)
if wants_run:
play_char.walk_or_run = "RunState"
if play_char.walk_or_run == "RunState":
transitioned.emit(self, "RunState")
func move(delta : float) -> void:
@ -66,3 +64,4 @@ func move(delta : float) -> void:
play_char.velocity.z = lerp(play_char.velocity.z, play_char.move_dir.y * play_char.move_speed, play_char.move_accel * delta)
else:
transitioned.emit(self, "IdleState")