diff --git a/assets/creatures/controller.gd b/assets/creatures/controller.gd index 2ae048a..c532606 100644 --- a/assets/creatures/controller.gd +++ b/assets/creatures/controller.gd @@ -1,9 +1,10 @@ extends CharacterBody3D -const speed = 5.0 +const speed_walk = 1.0 +const speed_run = 4.0 const JUMP_VELOCITY = 4.5 const lent = 0.05 - +var action_speed= false @onready var animation_player = $visuals/raference/AnimationPlayer @onready var visuals = $visuals @@ -26,13 +27,18 @@ func _physics_process(delta): visuals.rotation += perso_y * lent if Input.is_action_pressed("ui_down"): direction -= perso_z + animation_player.play_backwards( "raference_march") + if Input.is_action_just_pressed("ui_change_speed"): + action_speed = !action_speed if Input.is_action_pressed("ui_up"): - direction += perso_z - animation_player.play( "raference_march") - if Input.is_action_pressed("ui_run"): - direction += perso_z * speed - animation_player.play( "raference_run") - + if action_speed: + direction += perso_z * speed_run + animation_player.play( "raference_run") + else: + direction += perso_z + animation_player.play( "raference_march") + if Input.is_action_pressed("ui_camera"): + $camerapivot/Camera3D.global_transform = perso.direction if direction.x == 0 and direction.z == 0: animation_player.play( "raference_idle") if Input.is_action_pressed("ui_cancel"): @@ -42,8 +48,8 @@ func _physics_process(delta): #direction = direction.normalized() #perso_y.look_at(position + direction, Vector3.UP) - target_velocity.x = direction.x * speed - target_velocity.z = direction.z * speed + target_velocity.x = direction.x * speed_walk + target_velocity.z = direction.z * speed_walk if is_on_floor() and Input.is_action_just_pressed("ui_jump"): target_velocity.y = jump_force