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)
|
"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={
|
interact={
|
||||||
"deadzone": 0.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":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
"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)
|
"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]
|
[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
|
class_name Player extends CharacterBody3D
|
||||||
## The instance of the current player in the game world.
|
## 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
|
## Global singleton accessor
|
||||||
static var instance: Player
|
static var instance: Player
|
||||||
|
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
Player.instance = self
|
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://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"]
|
[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://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://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://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"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_qnmj6"]
|
||||||
|
|
||||||
@ -106,6 +107,7 @@ script = ExtResource("4_244u8")
|
|||||||
metadata/_custom_type_script = "uid://032jyhgkb2rv"
|
metadata/_custom_type_script = "uid://032jyhgkb2rv"
|
||||||
|
|
||||||
[node name="MovementController" type="Node" parent="."]
|
[node name="MovementController" type="Node" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
script = ExtResource("6_jiejy")
|
script = ExtResource("6_jiejy")
|
||||||
metadata/_custom_type_script = "uid://c0nxcunx0fo4r"
|
metadata/_custom_type_script = "uid://c0nxcunx0fo4r"
|
||||||
|
|
||||||
@ -113,6 +115,11 @@ metadata/_custom_type_script = "uid://c0nxcunx0fo4r"
|
|||||||
script = ExtResource("7_o822w")
|
script = ExtResource("7_o822w")
|
||||||
metadata/_custom_type_script = "uid://d11erhxna68vd"
|
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")]
|
[node name="DebugHUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("player")]
|
||||||
script = ExtResource("9_l271a")
|
script = ExtResource("9_l271a")
|
||||||
player = NodePath("..")
|
player = NodePath("..")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user