JuegoClase/Player/player.gd
2024-10-26 07:47:55 +02:00

97 lines
2.1 KiB
GDScript

extends CharacterBody2D
class_name Player
var speed := 140
var direccion := 0.0
var jump := 250
const gravity := 12
var damage = 1
var canDash = true
@onready var anim := $AnimationPlayer
@onready var sprite := $Sprite2D
@onready var frutaslabel := $PlayerGUI/HBoxContainer/FrutasLabel
@onready var raycastDmg := $RaycastDmg
@onready var dmgColision := $RecibirDanio/CollisionShape2D
@onready var hpbar := $PlayerGUI/VBoxContainer/HPProgressBar
#
#enum estados {NORMAL,HERIDO}
#var estadoActual = estados.NORMAL
@onready var state_machine= $StateMachine
var vida := 3 :
set(val):
vida = val
hpbar.value = vida
var numSaltos = 2
func _ready():
hpbar.max_value = vida
hpbar.value = vida
Global.connect("fruitCollected",actualizaInterfazFrutas)
func _process(delta):
$LabelState.text = $StateMachine.state.name
#print($StateMachine.state.name)
if is_on_floor() and numSaltos != 2 and state_machine.state.name != "enAire":
reiniciaSalto()
#Leer los raycast
for ray in raycastDmg.get_children():
if ray.is_colliding():
var colision = ray.get_collider()
if colision.is_in_group("Enemigos") and colision.has_method("takeDmg"):
colision.takeDmg(damage)
state_machine.transition_to("enAire",{Salto = true})
numSaltos+=1
if is_on_floor():
canDash = true
func reiniciaSalto():
numSaltos = 2
func actualizaInterfazFrutas():
frutaslabel.text = ("x"+str(Global.frutas))
#
func takeDamage(dmg):
vida-=dmg
state_machine.transition_to("takeDamage")
if vida <= 0:
morir()
func morir():
get_tree().reload_current_scene()
#
#func _physics_process(delta):
# if estadoActual == estados.NORMAL:
# procesarNormal(delta)
#
#
#func procesarNormal(delta):
# direccion = Input.get_axis("ui_left","ui_right")
# velocity.x = direccion * speed
#
# if direccion != 0:
# anim.play("walk")
# else:
# anim.play("idle")
#
# sprite.flip_h = direccion < 0 if direccion != 0 else sprite.flip_h
#
# if is_on_floor() and Input.is_action_just_pressed("ui_accept"):
# $AudioSalto.play()
# velocity.y -= jump
#
# if !is_on_floor():
# velocity.y += gravity
#
#
# move_and_slide()
#
#