add running and crouching

This commit is contained in:
Teatov 2025-02-13 19:08:08 +10:00
parent 669eed3a1b
commit 0652e0d23b
4 changed files with 27 additions and 2 deletions

View File

@ -129,6 +129,18 @@ toggle_debug={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":96,"key_label":0,"unicode":96,"location":0,"echo":false,"script":null)
]
}
crouch={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
]
}
run={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":7,"pressure":0.0,"pressed":true,"script":null)
]
}
[layer_names]

View File

@ -18,7 +18,7 @@ use_collision = true
[node name="CSGBox3D" type="CSGBox3D" parent="Geometry/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -50, 0)
size = Vector3(10, 100, 10)
size = Vector3(40, 100, 10)
[node name="Lights" type="Node" parent="."]

View File

@ -19,6 +19,9 @@ properties/1/replication_mode = 1
properties/2/path = NodePath("Camera3D:rotation")
properties/2/spawn = true
properties/2/replication_mode = 1
properties/3/path = NodePath("Camera3D:position")
properties/3/spawn = true
properties/3/replication_mode = 1
[node name="Player" type="CharacterBody3D"]
collision_layer = 2

View File

@ -2,6 +2,8 @@ class_name Player
extends CharacterBody3D
const MOVE_SPEED: float = 5
const RUN_SPEED: float = 10
const CROUCH_SPEED: float = 1
const MOVE_ACCELERATION: float = 50
const MOVE_DECELERATION: float = 25
@ -126,7 +128,15 @@ func _lateral_movement(delta: float) -> void:
var direction := (
(transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
)
var new_velocity := direction * MOVE_SPEED
var speed := MOVE_SPEED
Debugger.text("move_mode", "move", 2)
if Input.is_action_pressed("crouch"):
speed = CROUCH_SPEED
Debugger.text("move_mode", "crouch", 2)
if Input.is_action_pressed("run"):
speed = RUN_SPEED
Debugger.text("move_mode", "run", 2)
var new_velocity := direction * speed
new_velocity.y = velocity.y
velocity = velocity.move_toward(new_velocity, MOVE_ACCELERATION * delta)
else: