Entity movement improvements
This commit is contained in:
@@ -2,17 +2,13 @@ class_name EntityMovement extends Node
|
||||
|
||||
const GRAVITY = Vector3.DOWN * 100
|
||||
const FRICTION = 0.01
|
||||
const WALK_SPEED_DEFAULT = 8
|
||||
const RUN_SPEED_DEFAULT = 12
|
||||
|
||||
# var _inputDir:Vector2 = Vector2.ZERO
|
||||
# var _running:bool = false
|
||||
const SPEED_DEFAULT = 8
|
||||
const ROTATION_SPEED_DEFAULT = 15.0
|
||||
|
||||
@export var entity:Entity
|
||||
@export var interactingArea:EntityInteractingArea
|
||||
# @export var rotate:Node3D
|
||||
@export var walkSpeed:float = WALK_SPEED_DEFAULT
|
||||
# @export var runSpeed:float = RUN_SPEED_DEFAULT
|
||||
@export var speed:float = SPEED_DEFAULT
|
||||
@export var rotationSpeed:float = ROTATION_SPEED_DEFAULT
|
||||
|
||||
#
|
||||
# Private Methods
|
||||
@@ -21,7 +17,7 @@ func _applyGravity() -> void:
|
||||
if !entity.is_on_floor():
|
||||
entity.velocity += GRAVITY * get_process_delta_time()
|
||||
|
||||
func _applyPlayerMovement(_delta:float):
|
||||
func _applyPlayerMovement(delta:float):
|
||||
# Interactions, may move
|
||||
if Input.is_action_just_pressed("interact") && interactingArea && interactingArea.hasInteraction():
|
||||
interactingArea.interact()
|
||||
@@ -48,9 +44,9 @@ func _applyPlayerMovement(_delta:float):
|
||||
if directionAdjusted.length() <= 0.01:
|
||||
return
|
||||
|
||||
entity.look_at(entity.global_position + directionAdjusted, Vector3.UP)
|
||||
var targetYaw:float = atan2(-directionAdjusted.x, -directionAdjusted.z)
|
||||
entity.rotation.y = lerp_angle(entity.rotation.y, targetYaw, rotationSpeed * delta)
|
||||
|
||||
var speed = walkSpeed
|
||||
entity.velocity.x = directionAdjusted.x * speed
|
||||
entity.velocity.z = directionAdjusted.z * speed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user