generated from krampus/template-godot4
Added debug movement mode
This commit is contained in:
parent
150f3a57a4
commit
ec02444014
@ -91,6 +91,11 @@ sprint={
|
||||
"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)
|
||||
]
|
||||
}
|
||||
sneak={
|
||||
"deadzone": 0.2,
|
||||
"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)
|
||||
]
|
||||
}
|
||||
interact={
|
||||
"deadzone": 0.2,
|
||||
"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":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
||||
@ -106,6 +111,26 @@ pause={
|
||||
"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":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
debug_1={
|
||||
"deadzone": 0.2,
|
||||
"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":4194332,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
debug_2={
|
||||
"deadzone": 0.2,
|
||||
"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":4194333,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
debug_3={
|
||||
"deadzone": 0.2,
|
||||
"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":4194334,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
debug_4={
|
||||
"deadzone": 0.2,
|
||||
"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":4194335,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
|
||||
32
src/player/movement/debug_movement.gd
Normal file
32
src/player/movement/debug_movement.gd
Normal file
@ -0,0 +1,32 @@
|
||||
class_name DebugMovement extends Node
|
||||
## Movement controller for debug flight
|
||||
|
||||
const ACCELERATION := 10.0
|
||||
|
||||
@export var enabled := false
|
||||
|
||||
@export var normal_speed := 160.0
|
||||
@export var fast_speed := 320.0
|
||||
|
||||
@onready var character: CharacterBody3D = get_parent()
|
||||
|
||||
|
||||
func get_speed() -> float:
|
||||
return fast_speed if Input.is_action_pressed("sprint") else normal_speed
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if not enabled:
|
||||
return
|
||||
|
||||
var forward_input := Input.get_axis("move_back", "move_forward")
|
||||
var side_input := Input.get_axis("move_right", "move_left")
|
||||
var vertical_input := Input.get_axis("sneak", "jump")
|
||||
var movement := Vector3(-side_input, vertical_input, -forward_input) * get_speed() * delta
|
||||
var camera := get_viewport().get_camera_3d()
|
||||
var motion := camera.basis * movement
|
||||
|
||||
var weight := 1.0 - exp(-ACCELERATION * delta)
|
||||
character.velocity = character.velocity.lerp(motion, weight)
|
||||
|
||||
character.move_and_slide()
|
||||
1
src/player/movement/debug_movement.gd.uid
Normal file
1
src/player/movement/debug_movement.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://htwqrc73xg7q
|
||||
@ -1,9 +1,18 @@
|
||||
class_name Player extends CharacterBody3D
|
||||
## The instance of the current player in the game world.
|
||||
|
||||
@onready var movement_controller: MovementController = %MovementController
|
||||
@onready var debug_movement: DebugMovement = %DebugMovement
|
||||
|
||||
## Global singleton accessor
|
||||
static var instance: Player
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
Player.instance = self
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("debug_1"):
|
||||
movement_controller.enabled = not movement_controller.enabled
|
||||
debug_movement.enabled = not debug_movement.enabled
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=22 format=3 uid="uid://dtbulshrxetes"]
|
||||
[gd_scene load_steps=23 format=3 uid="uid://dtbulshrxetes"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bihaf1xlwpkdo" path="res://src/player/player.gd" id="1_5f2sf"]
|
||||
[ext_resource type="Script" uid="uid://f3kssctvn2bo" path="res://src/player/camera/camera_controller.gd" id="1_mf2ua"]
|
||||
@ -10,6 +10,7 @@
|
||||
[ext_resource type="Script" uid="uid://c0nxcunx0fo4r" path="res://src/player/movement/movement_controller.gd" id="6_jiejy"]
|
||||
[ext_resource type="Script" uid="uid://d11erhxna68vd" path="res://src/player/movement/player_input_controller.gd" id="7_o822w"]
|
||||
[ext_resource type="Script" uid="uid://dao84umfatnid" path="res://src/player/debug_hud.gd" id="9_l271a"]
|
||||
[ext_resource type="Script" uid="uid://htwqrc73xg7q" path="res://src/player/movement/debug_movement.gd" id="10_ylhto"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_qnmj6"]
|
||||
|
||||
@ -106,6 +107,7 @@ script = ExtResource("4_244u8")
|
||||
metadata/_custom_type_script = "uid://032jyhgkb2rv"
|
||||
|
||||
[node name="MovementController" type="Node" parent="."]
|
||||
unique_name_in_owner = true
|
||||
script = ExtResource("6_jiejy")
|
||||
metadata/_custom_type_script = "uid://c0nxcunx0fo4r"
|
||||
|
||||
@ -113,6 +115,11 @@ metadata/_custom_type_script = "uid://c0nxcunx0fo4r"
|
||||
script = ExtResource("7_o822w")
|
||||
metadata/_custom_type_script = "uid://d11erhxna68vd"
|
||||
|
||||
[node name="DebugMovement" type="Node" parent="."]
|
||||
unique_name_in_owner = true
|
||||
script = ExtResource("10_ylhto")
|
||||
metadata/_custom_type_script = "uid://htwqrc73xg7q"
|
||||
|
||||
[node name="DebugHUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("player")]
|
||||
script = ExtResource("9_l271a")
|
||||
player = NodePath("..")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user