lunes, 4 de marzo de 2024

Otra forma de borrar un label trancurrido tiempo con Godot4.2; y siempre ayudandome de una IA; tambien borrar un RigidBody3D;

 extends Label


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


func _ready():

# Obtener el Label que queremos usar

var label_tiempo_vida = $"."


# Mostrar el texto del Label en este Label

text = label_tiempo_vida.text


# 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



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

explicacion: en esta linea--------

 func _ready():

# Obtener el Label que queremos usar         

 var label_tiempo_vida = $"."          --------



- e arrastrado mi label desde la escena, eso lo razone yo, es indispensable si no se sabe programar como es mi caso, la ayuda de una IA, es como si trabajases con un amigo , la IA es una cosa tremenda, en un primer script la IA me ponia esta linea de codigo , por esta otra-------


func _ready():

# Mostrar el texto

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


Escribia el texto directamente, pero a mi me interesaba arrastrar desde la escena el label que ya tenia preparado........y lo e conseguido, fantastico¡¡¡¡¡


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


OTRO EJEMPLO DE BORRAR POR TIEMPO UN   RigidBody3D


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

extends RigidBody3D



var tiempo_de_vida = 2.5  # Duración en segundos antes de eliminar la piedra

func _ready():
# Iniciar temporizador
$Timer.start(tiempo_de_vida)





func _on_timer_timeout():
queue_free()
pass # Replace with function body.


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..........