Added health bars
This commit is contained in:
42
client/player/movement/MovementComponent.gd
Normal file
42
client/player/movement/MovementComponent.gd
Normal file
@ -0,0 +1,42 @@
|
||||
class_name MovementComponent
|
||||
extends Node
|
||||
|
||||
@export var move_speed := 4.5
|
||||
@export var jump_velocity := 4.5
|
||||
@export var deceleration := 0.75
|
||||
|
||||
var body: CharacterBody3D
|
||||
var direction: Vector3
|
||||
var gravity: float
|
||||
|
||||
func _ready():
|
||||
if owner.has_signal("direction_changed"):
|
||||
owner.direction_changed.connect(on_direction_changed)
|
||||
|
||||
if owner.has_signal("jumped"):
|
||||
owner.jumped.connect(jump)
|
||||
|
||||
body = owner as CharacterBody3D
|
||||
gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||
|
||||
func _physics_process(delta):
|
||||
if direction:
|
||||
body.velocity.x = direction.x * move_speed
|
||||
body.velocity.z = direction.z * move_speed
|
||||
else:
|
||||
body.velocity.x *= deceleration
|
||||
body.velocity.z *= deceleration
|
||||
|
||||
if !body.is_on_floor():
|
||||
body.velocity.y -= gravity * delta
|
||||
|
||||
body.move_and_slide()
|
||||
|
||||
func on_direction_changed(new_direction: Vector3):
|
||||
direction = new_direction
|
||||
|
||||
func can_jump() -> bool:
|
||||
return body.is_on_floor()
|
||||
|
||||
func jump():
|
||||
body.velocity.y = jump_velocity
|
6
client/player/movement/MovementComponent.tscn
Normal file
6
client/player/movement/MovementComponent.tscn
Normal file
@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://x102pryt2s5a"]
|
||||
|
||||
[ext_resource type="Script" path="res://player/movement/MovementComponent.gd" id="1_2gnmd"]
|
||||
|
||||
[node name="Movement" type="Node"]
|
||||
script = ExtResource("1_2gnmd")
|
Reference in New Issue
Block a user