diff --git a/project.godot b/project.godot index 135c4d9..40c69a4 100644 --- a/project.godot +++ b/project.godot @@ -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] diff --git a/scenes/main.tscn b/scenes/main.tscn index 5821c87..46f365c 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -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="."] diff --git a/scenes/player.tscn b/scenes/player.tscn index cd84c8c..8183b20 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -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 diff --git a/scripts/player.gd b/scripts/player.gd index cb8af8c..aa18bcd 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -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: