sábado, 26 de abril de 2025

GDScript Godot 4.4 animaciones perfectas de reposo andar y ataque;

 extends Node3D


var animacion_actual = "MakeHuman default skeleton|DESCANSO"


func _ready():

$AnimationPlayer.play(animacion_actual)


func _physics_process(delta):

var alguna_tecla_pulsada = false


# Comprobamos si alguna de las acciones está siendo presionada

if Input.is_action_pressed("achazo") or \

   Input.is_action_pressed("mouse_left") or \

   Input.is_action_pressed("mouse_right") or \

   Input.is_action_pressed("RETUERCE") or \

   Input.is_action_pressed("ANDAALANTECONW") or \

   Input.is_action_pressed("A") or \

   Input.is_action_pressed("D"):

alguna_tecla_pulsada = true


# Animación de ESPADAZO

if Input.is_action_pressed("achazo") or Input.is_action_pressed("mouse_left"):

if animacion_actual != "MakeHuman default skeleton|ESPADAZO":

$AnimationPlayer.play("MakeHuman default skeleton|ESPADAZO")

animacion_actual = "MakeHuman default skeleton|ESPADAZO"


# Animación de ATRABESAR

elif Input.is_action_pressed("mouse_right") or Input.is_action_pressed("RETUERCE"):

if animacion_actual != "MakeHuman default skeleton|ATRABESAR":

$AnimationPlayer.play("MakeHuman default skeleton|ATRABESAR")

animacion_actual = "MakeHuman default skeleton|ATRABESAR"


# Animación de ANDAR

elif Input.is_action_pressed("ANDAALANTECONW") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "MakeHuman default skeleton|ANDAR":

$AnimationPlayer.play("MakeHuman default skeleton|ANDAR")

animacion_actual = "MakeHuman default skeleton|ANDAR"


# Si no se presiona ninguna tecla, volvemos a la animación de descanso

elif not alguna_tecla_pulsada:

if animacion_actual != "MakeHuman default skeleton|DESCANSO":

$AnimationPlayer.play("MakeHuman default skeleton|DESCANSO")

animacion_actual = "MakeHuman default skeleton|DESCANSO"


No hay comentarios:

Publicar un comentario