44 lines
1.2 KiB
GDScript
44 lines
1.2 KiB
GDScript
extends CharacterBody2D
|
|
@onready var global = $"/root/Player"
|
|
var playerHealth = 100.0
|
|
var dead = false
|
|
const SPEED = 350.0
|
|
var charAngle = 0.0
|
|
func _physics_process(delta: float) -> void:
|
|
global.emit_signal("playerPosition",self.global_position)
|
|
if dead != true:
|
|
movement()
|
|
|
|
func _process(delta: float) -> void:
|
|
if dead != false:
|
|
setAnimation("Death")
|
|
if Input.is_action_just_pressed("test"):
|
|
playerDamage(100)
|
|
|
|
func setAnimation(anim):
|
|
if $"Birb".animation != anim:
|
|
$Birb.animation = anim
|
|
$"Birb".play()
|
|
|
|
func movement():
|
|
var vertical = Input.get_axis("up","down")
|
|
var horizontal = Input.get_axis("left","right")
|
|
var rotVector = Vector2(vertical*-1,horizontal)
|
|
if rotVector != Vector2(0,0):
|
|
self.set_rotation(rotVector.angle())
|
|
#limiting diagonal speed
|
|
if is_equal_approx(abs(vertical),1.0) and is_equal_approx(abs(horizontal),1.0):
|
|
velocity.y = SPEED*vertical/2
|
|
velocity.x = SPEED*horizontal/2
|
|
else:
|
|
velocity.y = SPEED * vertical
|
|
velocity.x = SPEED * horizontal
|
|
move_and_slide()
|
|
#$"../UI/Label".text = (str(charAngle*180/PI))
|
|
|
|
func playerDamage(amount):
|
|
if dead == false:
|
|
playerHealth -= amount
|
|
if playerHealth <= 0 and dead == false:
|
|
dead = true
|