lunes, 4 de marzo de 2024

Una forma de borrar un label en godot4.2 transcurrido un tiempo;

 extends Label


var tiempo_de_vida = 12.5 # Duración en segundos antes de eliminar el Label


func _ready():

# Mostrar el texto

text = "W-A-S-D Y MOUSE BOTONES " + str(tiempo_de_vida) + " segundos."


# Iniciar el temporizador

$Timer.start(tiempo_de_vida)


func _on_timer_timeout():

# Eliminar el Label

queue_free()


func _process(delta):

# Si el tiempo de vida ha llegado a 0, eliminar el Label

if tiempo_de_vida <= 0:

_on_timer_timeout()

return


# Reducir el tiempo de vida en cada frame

tiempo_de_vida -= delta


sábado, 2 de marzo de 2024

Futuro proyecto con godot 4.2 en 3d;

 

Con lo que boy aprendiendo y practicando, muestro una captura de video de mi proximo proyecto........

jueves, 29 de febrero de 2024

GDScript para godot4.2 3d movimiento continuo de un area3d y que a los 2 segundos se borra;

 extends Area3D


var speed = 15  # Unidades por segundo

var tiempo_transcurrido = 0.0  # Tiempo en segundos


# Función que se ejecuta en cada frame

func _process(delta):

    # Calcular movimiento basado en la velocidad y el tiempo delta

    var movimiento = Vector3(speed * delta, 0, 0)


    # Aplicar el movimiento a la posición del nodo

    translate(movimiento)


    # Actualizar el tiempo transcurrido

    tiempo_transcurrido += delta


    # Eliminar el nodo después de 2 segundos

    if tiempo_transcurrido >= 2.0:

        queue_free()


GDSCRIPT PARA GODOT 4.2 3D MOVIMIENTO CONTINUO LATERAL;

 extends Area3D


var speed = 15  # Unidades por segundo


# Función que se ejecuta en cada frame

func _process(delta):

    # Calcular movimiento basado en la velocidad y el tiempo delta

    var movimiento = Vector3(speed * delta, 0, 0)


    # Aplicar el movimiento a la posición del nodo

    translate(movimiento)


GDScript para Godot4.2 3d animacion elavorada con explicacion del GDScript;

 extends Node3D


var animacion_actual = "ANDAR"


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


#if animacion_actual != "CHISPA":


$AnimationPlayer.play("CHISPA")


animacion_actual = "CHISPA"


# Acción del motor del juego


#elif Input.is_action_pressed("ui_up"):

if event is InputEventMouseButton:


if event.button_index == 2:


#if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Saltar


elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "SALTAR":


$AnimationPlayer.play("SALTAR")


animacion_actual = "SALTAR"


# Moverse hacia la izquierda


elif Input.is_action_pressed("ui_left"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Moverse hacia la derecha


elif Input.is_action_pressed("ui_right"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Animación "BALANCE" en bucle


else:


# Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación

if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():


$AnimationPlayer.play("BALANCE")


animacion_actual = "BALANCE"

------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------

EXPLICACION:

resuelto, player que tiene un movi miento continuo, y que si presiono boton izquierdo del raton ,cambia su animacion , si presiono boton derecho del raton cambia a otra animacion y tambien cambia animaciones presionando teclas flechas...(junto teclado numerico)


script GDScript para generar movimientos de un personaje con el mouse botones y con teclas flechas;

 extends Node3D


var animacion_actual = "ANDAR"


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


#if animacion_actual != "CHISPA":


$AnimationPlayer.play("CHISPA")


animacion_actual = "CHISPA"


# Acción del motor del juego


elif Input.is_action_pressed("ui_up"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Saltar


elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "SALTAR":


$AnimationPlayer.play("SALTAR")


animacion_actual = "SALTAR"


# Moverse hacia la izquierda


elif Input.is_action_pressed("ui_left"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Moverse hacia la derecha


elif Input.is_action_pressed("ui_right"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Animación "BALANCE" en bucle


else:


# Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación

if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():


$AnimationPlayer.play("BALANCE")


animacion_actual = "BALANCE"


-----------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------------

EXPLICACION:

con este script consigo que el personaje player tenga una animacion continua, y que al presionar teclas de las flechas, (al lado teclado numerico) cambie su movimiento y ademas consegui que al presionar boton del raton aga otro movimiento, quiero hacer como un mago que al mover el brazo de diferentes formas aga algun efecto que ire preparando..........


miércoles, 28 de febrero de 2024

Nuevo script para Godot4.2 para animar un personaje que sin presionar tecla ya tiene una animacion en bucle;

extends Node3D


var animacion_actual = "ANDAR"


func _physics_process(delta):


    # Agacharse


    if Input.is_action_pressed("ui_down"):


        if animacion_actual != "CHISPA":


            $AnimationPlayer.play("CHISPA")


            animacion_actual = "CHISPA"


    # Acción del motor del juego


    elif Input.is_action_pressed("ui_up"):


        if animacion_actual != "ANDAR":


            $AnimationPlayer.play("ANDAR")


            animacion_actual = "ANDAR"


    # Saltar


    elif Input.is_action_pressed("ui_accept"):


        if animacion_actual != "SALTAR":


            $AnimationPlayer.play("SALTAR")


            animacion_actual = "SALTAR"


    # Moverse hacia la izquierda


    elif Input.is_action_pressed("ui_left"):


        if animacion_actual != "ANDAR":


            $AnimationPlayer.play("ANDAR")


            animacion_actual = "ANDAR"


    # Moverse hacia la derecha


    elif Input.is_action_pressed("ui_right"):


        if animacion_actual != "ANDAR":


            $AnimationPlayer.play("ANDAR")


            animacion_actual = "ANDAR"


    # Animación "BALANCE" en bucle


    else:


        # Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación

        if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():


            $AnimationPlayer.play("BALANCE")


            animacion_actual = "BALANCE"


---------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

EXPLICACION : UN PERSONAJE PLAYER QUE AL PRESIONAR TECLAS FLECHAS AGA 2 MOVIMIENTOS DIFERENTES, PERO QUE SIN PRESIONAR NADA YA TENGA UN MOVIMIENTO EN BUCLE,