viernes, 12 de abril de 2024

Anima label y lo borra por tiempo, titulo de juego; para Godot 4.2;

 extends Label


var tiempo_de_vida = 4.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):

$AnimationPlayer.play("FONDOMUEBETE")

# 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


EN GODOT 4.2, SCRIPT POR PUNTUACION SI LLEGA A LOS 8 PUNTOS BORRA LA ESCENA Y CAMBIA A OTRA CON CAMARA FUNCIONA¡¡¡¡¡¡¡¡;

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

------------------------------------------------------------------------------------------------------------------
SCRIPT POR PUNTUACION SI LLEGA A LOS 8 PUNTOS BORRA LA ESCENA Y CAMBIA A OTRA CON CAMARA FUNCIONA¡¡¡¡¡¡¡¡
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
extends Area3D  

#var fuerza_intensidad = 110.9  // Variable que define la intensidad de la fuerza que se aplicará en la colisión.
var score = 0  


# Se llama cuando el nodo ingresa al árbol de escena por primera vez.

func _ready():
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar configuraciones iniciales.


# Se llama en cada frame del juego. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta):
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar acciones que se repiten cada frame.


func _on_area_entered(area):  # Se llama cuando otro objeto entra en el área de colisión de este nodo.

# Actualiza el texto del Label3D para mostrar la puntuación actual.
$Label3D.text = str(score)

# Aumenta la puntuación en 1.
score += 1

# Reproduce la animación "EXPLOTA" del AnimationPlayer adjunto al padre de este nodo (../ indica subir un nivel en la jerarquía del árbol de escena).
$"../AnimationPlayer".play("EXPLOTA")

# Reproduce el AudioStreamPlayer3D asociado al AnimationPlayer para generar un sonido de explosión.
$"../AnimationPlayer/AudioStreamPlayer3D".play()
# La parte comentada define una dirección de fuerza, por ahora no se usa en el código.
# var direccion_fuerza = Vector3(fuerza_intensidad, 0.0, 0.0)

# Puedes agregar aquí código para aplicar la fuerza a objetos que entren en colisión.

# Si la puntuación alcanza los 100 puntos, cambia de escena a "AMA".
if score == 8:
var siguiente_escena = preload("res://BARCO Y ELEMENTOS DEL BARCO/BARRIL EXPLOSIBO/bidon.tscn")  # Precargar la escena

get_tree().change_scene_to_packed(siguiente_escena)  # Cambiar a la escena precargada (Godot 4.2)

queue_free()  # Liberar este nodo después del cambio de escena

pass