domingo, 17 de noviembre de 2024

GGDScript borra por tiempo, barra de vida y sus hijos; Ejemplos de barra de vida; Ejemplo asociado a otro objeto que es borrado tambien;

 extends ProgressBar


func _ready() -> void:

value = 0


func _process(delta: float) -> void:

value += 0.01


if value >= 100:

# Recorremos todos los hijos del ProgressBar y los eliminamos

for child in get_children():

child.queue_free()

# Eliminamos el ProgressBar

queue_free()



Gdscript Godot 4.3 barra de vida; aumenta por tiempo el valor asta el 100%; Practicas de barra de vida en Godot 4.3; una variante borra el ProgressBar;

 extends ProgressBar


func _ready():

# Establecemos un valor inicial para la barra de progreso

value = 0


func _process(delta):

# Incrementamos el valor de la barra de progreso en cada frame

value += 0.01


# Si el valor llega a 100, eliminamos el nodo padre (StaticBody3D)

if value >= 100:

queue_free()  # Esta función elimina el nodo actual (ProgressBar)

# Como el ProgressBar es hijo del StaticBody3D, al eliminar el hijo, el padre también se elimina

Gdscript Godot 4.3 barra de vida; aumenta por tiempo el valor asta el 100%; Practicas de barra de vida en Godot 4.3;

 extends ProgressBar


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

# Set the initial value of the progress bar

value = 0


# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

# Increment the progress bar's value

value += 0.01


# Reset the value when it reaches 100

if value > 100:

value = 0

jueves, 14 de noviembre de 2024

Sencillisimo GDScript para producir el temblor de un CSGBox3D;

 extends CSGBox3D


var amplitud = 0.1

var velocidad = 2.0


func _process(delta: float) -> void:

transform.origin.z += randf_range(-amplitud * velocidad * delta, amplitud * velocidad * delta)



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

variante con efecto mas acusado...........

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

extends CSGBox3D


var amplitud = 0.4

var velocidad = 5.0


func _process(delta: float) -> void:

transform.origin.z += randf_range(-amplitud * velocidad * delta, amplitud * velocidad * delta)


miércoles, 13 de noviembre de 2024

Un MeshInstance3D, asciende lentamente en eje "y" y se borra a los 25 segundos; Godot 4.3;

 extends MeshInstance3D

var speed = 0.05  # Unidades por segundo

var tiempo_transcurrido = 0.0  # Tiempo en segundos


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

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

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

#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 >= 25.0:

queue_free()

pass

domingo, 10 de noviembre de 2024

Ejercicios de animar con Blender y pasar a Godot4.3;

 


Gira la camara3d y por tiempo la borra hace las dos cosas; GDScript para godot 4.3 en 3d;

 extends Camera3D


var target_rotation_x = PI / 2  # Ángulo de rotación objetivo en el eje X

var target_rotation_y = PI / 2  # Ángulo de rotación objetivo en el eje Y


var current_rotation_x = 0.0

var current_rotation_y = 0.0


var rotation_speed = 0.3  # Ajusta esta variable para cambiar la velocidad de rotación


var is_rotating_forward_x = true  # Indica si la rotación en X es en sentido horario

var is_rotating_forward_y = false  # Indica si la rotación en Y es en sentido horario



var tiempo_transcurrido = 0.0 





func _process(delta: float) -> void:


tiempo_transcurrido += delta


# Eliminar el nodo después de 2 segundos

if tiempo_transcurrido >= 8.28:

queue_free()



# Rotación en el eje X

if is_rotating_forward_x:

if current_rotation_x < target_rotation_x:

rotate_x(delta * rotation_speed)

current_rotation_x += delta * rotation_speed

if current_rotation_x >= target_rotation_x:

current_rotation_x = target_rotation_x

is_rotating_forward_x = false

else:

if current_rotation_x > -target_rotation_x:

rotate_x(-delta * rotation_speed)

current_rotation_x -= delta * rotation_speed

if current_rotation_x <= -target_rotation_x:

current_rotation_x = -target_rotation_x

is_rotating_forward_x = true


# Rotación en el eje Y

if is_rotating_forward_y:

if current_rotation_y < target_rotation_y:

rotate_y(delta * rotation_speed)

current_rotation_y += delta * rotation_speed

if current_rotation_y >= target_rotation_y:

current_rotation_y = target_rotation_y

is_rotating_forward_y = false

else:

if current_rotation_y > -target_rotation_y:

rotate_y(-delta * rotation_speed)

current_rotation_y -= delta * rotation_speed

if current_rotation_y <= -target_rotation_y:

current_rotation_y = -target_rotation_y

is_rotating_forward_y = true