domingo, 28 de julio de 2024

Borra una puerta, la quema, borra elemetos de una puerta y sus StaticBody3D con su CollisionShape3D; en GDScript para Godot 4.2;

 extends Area3D



var Esferauno = preload("res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/BORRALO.tscn")


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

func _ready():

pass # Replace with function body.



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

func _process(delta):

pass



func _on_area_entered(area):


var parent = get_parent()


var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")





get_node("CollisionShape3D").queue_free()


#$"../../SILLA OFICINA9 ARDERAAAAAAAAAAAAAAAAAAAAAAAAAA3".queue_free()

$"../CSGTorus3D2 AQUEMAR2".queue_free()

$"../CSGTorus3D2 AQUEMAR3".queue_free()

$"../CSGTorus3D2 AQUEMAR4".queue_free()

$"../CSGTorus3D2 AQUEMAR5".queue_free()

$"../CSGTorus3D2 AQUEMAR6".queue_free()

$"../StaticBody3D".queue_free()

pass # Replace with function body.



func _on_area_exited(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


pass # Replace with function body.





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

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

EXPLICACION: Un personaje a de atravesar una puerta, el script instancia un fuego ya que el personaje representa que la quema con un lanzallamas, a la vez borra elementos de dicha puerta sus StaticBody3D con su CollisionShape3D, ese fuego se apagara en unos segundos pero eso lo hace desde su propio script, ya que ese fuego es de una escena diferente que fue instanciada con este script.  "res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/BORRALO.tscn" pongo mas abajo el script de borrar por tiempo la escena BORRALO.tscn sus graficos representan fuego y esta asociado un sonido de quemar a estos graficos para dar mas realismo y ambiente


extends RigidBody3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):


tiempo_transcurrido += delta


if tiempo_transcurrido >= 5.0:


queue_free() # Elimina el nodo de la escena



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

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

extends CPUParticles3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):


tiempo_transcurrido += delta


if tiempo_transcurrido >= 5.0:


queue_free() # Elimina el nodo de la escena




Script en GDScript para godot4.2, combinacion de mouse y teclado para ejecutar diversas animaciones de un personaje;

 extends Node3D



var animacion_actual = "OTROBRAZOMUEVE"



func _ready():

$AnimationPlayer2.play("UNAMASDEPRUEBASDEMASDEUNA")

pass # Replace with function body.




func _input(event):


if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




func _physics_process(delta):


# Agacharse



if Input.is_action_pressed("ui_down"):


if animacion_actual != "OTROBRAZOMUEVE":


#$AnimationPlayer.play("LEBANTAPIE")

$AnimationPlayer.play("OTROBRAZOMUEVE")


animacion_actual = "OTROBRAZOMUEVE"




elif Input.is_action_pressed("agacharse"):


if animacion_actual != "LEBANTABRAZO":


$AnimationPlayer.play("LEBANTABRAZO")


animacion_actual = "LEBANTABRAZO"




elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "GIRATRONCO":


$AnimationPlayer.play("GIRATRONCO")


animacion_actual = "GIRATRONCO"





elif Input.is_action_pressed("detenerse"):


if animacion_actual != "PASOJASON":


$AnimationPlayer.play("PASOJASON")


animacion_actual = "PASOJASON"





#elif Input.is_action_just_pressed("DISPARAR"):

#elif Input.is_action_released("DISPARAR"):

elif Input.is_action_pressed("DISPARAR"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




elif Input.is_action_pressed("DISPARAR2"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




# Moverse hacia la derecha


#elif Input.is_action_just_pressed("ui_right"):

#elif Input.is_action_just_pressed("andaradelante"):# este funciona

#elif Input.is_action_just_pressed("ui_right"):


func _unhandled_input(event):# pruebas pero funciona

if event is InputEventKey and event.pressed:# pruebas pero funciona

#if event.keycode == KEY_W or event.keycode == KEY_A or event.keycode == KEY_O or event.keycode == KEY_D:

if event.keycode == KEY_W:# pruebas pero funciona




#if animacion_actual != "ANDADEMIXAMO":# este funciona


$AnimationPlayer.play("ANDADEMIXAMO")


animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona


if event.keycode == KEY_A:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"

if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_D:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_X:# pruebas pero funciona

 

$AnimationPlayer.play("OTROBRAZOMUEVE")

animacion_actual = "OTROBRAZOMUEVE"







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

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

ampliado con presion del mouse boton 1 boton2 y presionar rueda del mouse

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

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

extends Node3D



var animacion_actual = "OTROBRAZOMUEVE"



func _ready():

$AnimationPlayer2.play("UNAMASDEPRUEBASDEMASDEUNA")

pass # Replace with function body.




func _input(event):


if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




if event.button_index == 2 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"





if event.button_index == 3 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




func _physics_process(delta):


# Agacharse



if Input.is_action_pressed("ui_down"):


if animacion_actual != "OTROBRAZOMUEVE":


#$AnimationPlayer.play("LEBANTAPIE")

$AnimationPlayer.play("OTROBRAZOMUEVE")


animacion_actual = "OTROBRAZOMUEVE"




elif Input.is_action_pressed("agacharse"):


if animacion_actual != "LEBANTABRAZO":


$AnimationPlayer.play("LEBANTABRAZO")


animacion_actual = "LEBANTABRAZO"




elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "GIRATRONCO":


$AnimationPlayer.play("GIRATRONCO")


animacion_actual = "GIRATRONCO"





elif Input.is_action_pressed("detenerse"):


if animacion_actual != "PASOJASON":


$AnimationPlayer.play("PASOJASON")


animacion_actual = "PASOJASON"





#elif Input.is_action_just_pressed("DISPARAR"):

#elif Input.is_action_released("DISPARAR"):

elif Input.is_action_pressed("DISPARAR"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




elif Input.is_action_pressed("DISPARAR2"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




# Moverse hacia la derecha


#elif Input.is_action_just_pressed("ui_right"):

#elif Input.is_action_just_pressed("andaradelante"):# este funciona

#elif Input.is_action_just_pressed("ui_right"):


func _unhandled_input(event):# pruebas pero funciona

if event is InputEventKey and event.pressed:# pruebas pero funciona

#if event.keycode == KEY_W or event.keycode == KEY_A or event.keycode == KEY_O or event.keycode == KEY_D:

if event.keycode == KEY_W:# pruebas pero funciona




#if animacion_actual != "ANDADEMIXAMO":# este funciona


$AnimationPlayer.play("ANDADEMIXAMO")


animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona


if event.keycode == KEY_A:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"

if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_D:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_X:# pruebas pero funciona

 

$AnimationPlayer.play("OTROBRAZOMUEVE")

animacion_actual = "OTROBRAZOMUEVE"



sábado, 27 de julio de 2024

Gdscript 3 ejemplos de una accion con el mouse, boton 1 el 2 y la rueda el 3 al ser prersionada;

 extends Area3D



var Bullet = preload("res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/proyectildefuego-1-tscn.tscn")




func _ready():




pass # Replace with function body.






func _input(event):






if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :


var bullet = Bullet.instantiate()


add_child(bullet)


if event.button_index == 2 and event.pressed :


var bullet = Bullet.instantiate()


add_child(bullet)

if event.button_index == 3 and event.pressed :


var bullet = Bullet.instantiate()


add_child(bullet)


func _unhandled_input(event):

if event is InputEventKey and event.pressed:

if event.keycode == KEY_W:

translate(Vector3(0, 0, 0) * get_process_delta_time())  # Temporary movement (consider physics)


#if event.keycode == KEY_


#apply_impulse(Vector3(0,40,4))#ORIGINAL



if event.keycode == KEY_Z:

rotate_x(0.02)

#pass

if event.keycode == KEY_X:

rotate_x(-0.02)

#pass



func _on_area_entered(area):

pass # Replace with function body.


Gdscript destruir por tiempo; con Godot 4.2; 2 ejemplos mas;

 extends Node3D


# Contador para llevar el tiempo

var timer = 0.0


func _physics_process(delta):

    # Incrementa el contador con el tiempo transcurrido

    timer += delta


    # Si el tiempo es mayor o igual a 5 segundos

    if timer >= 5.0:

        # Busca todos los nodos hijos de tipo CollisionShape3D

        for child in get_children():

            if child is CollisionShape3D:

                # Quita el nodo del árbol de escena

                child.queue_free()

        # Reinicia el timer para evitar que se ejecute nuevamente

        timer = 0.0

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



extends CPUParticles3D


# Contador para llevar el tiempo
var timer = 0.0

func _physics_process(delta):
# Incrementa el contador con el tiempo transcurrido
timer += delta

# Si el tiempo es mayor o igual a 5 segundos
if timer >= 1.0:
# Busca todos los nodos hijos de tipo CollisionShape3D
for child in get_children():
if child is CollisionShape3D:
# Quita el nodo del árbol de escena
child.queue_free()
# Reinicia el timer para evitar que se ejecute nuevamente
timer = 0.0

martes, 23 de julio de 2024

Script en gdscript para godot 4.2 , para al presionar escape sales del juego y para que transcurridos 24 segundos se cambie la escena del juego;

 extends WorldEnvironment




var tiempo_transcurrido = 0.0  # Variable para almacenar el tiempo transcurrido


func _process(delta):


if Input.is_action_pressed("ui_cancel"):

get_tree().quit()






tiempo_transcurrido += delta


# Si han pasado 20 segundos, elimina el nodo

if tiempo_transcurrido >= 24.0:

#queue_free()

var siguiente_escena = preload("res://LAS SEIS ESCENAS CORTAS DE ENTRADA/LA 6 PLANO GENERAL EN LA HABITACION DEL PROTA/SOLO ROSTRO-2-.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 # Replace with function body.


domingo, 21 de julio de 2024

GDScript, decremento del numero 24 al 0 tanto para label como para label3d;

 extends Label3D


var tiempo_restante = 24 # Número inicial


func _ready():

# Actualiza el Label con el tiempo restante inicial

text = str(int(tiempo_restante))


func _process(delta: float):

# Decrementa el tiempo restante cada segundo

tiempo_restante -= delta


# Actualiza el Label con el tiempo restante actualizado

if tiempo_restante >= 0:

text = str(int(tiempo_restante))

else:

text = "Tiempo terminado"




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

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


extends Label




var tiempo_restante = 24 # Número inicial


func _ready():

# Actualiza el Label con el tiempo restante inicial

text = str(int(tiempo_restante))


func _process(delta: float):

# Decrementa el tiempo restante cada segundo

tiempo_restante -= delta


# Actualiza el Label con el tiempo restante actualizado

if tiempo_restante >= 0:

text = str(int(tiempo_restante))

else:

text = "Tiempo terminado"










jueves, 18 de julio de 2024

GDScript para alternar el giro de una aguja, cada 2 segundos varia de un lado al contrario;

 extends MeshInstance3D


# Variable para controlar la dirección del giro

var giro_actual = 1


# Variable para almacenar el tiempo desde el último cambio de dirección

var tiempo_transcurrido = 0.0


# Se llama cuando el nodo entra en el árbol de escenas por primera vez.

func _ready():

pass # Reemplazar con el cuerpo de la función.


# Se llama cada cuadro. 'delta' es el tiempo transcurrido desde el cuadro anterior.

func _process(delta):


# Actualizar el tiempo transcurrido desde el último cambio de dirección

tiempo_transcurrido += delta


# Si han pasado 2 segundos, cambiar la dirección del giro

if tiempo_transcurrido >= 2.0:

giro_actual *= -1  # Invertir la dirección del giro

tiempo_transcurrido = 0.0  # Reiniciar el tiempo transcurrido


# Aplicar la rotación según la dirección actual

if giro_actual == 1:

rotate_y(-0.002)  # Giro en sentido de las agujas del reloj

else:

rotate_y(0.002)  # Giro en sentido contrario a las agujas del reloj


martes, 16 de julio de 2024

Script para godot 4.2 en GDScript, una camara con un movimiento por script alos pocos segundos tambien se borra del juego, ;

 extends Camera3D



var tiempo_transcurrido = 0.0 # NOVEDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD





# Define la cantidad de desplazamiento en el eje X

var translation_amount = 0.0009  # Ajusta este valor según tus necesidades


# Tiempo de espera para detener el movimiento (en segundos)

var stop_time = 13.0


# Variable para controlar el tiempo transcurrido

var elapsed_time = 0.0


# Llamada cuando el nodo ingresa por primera vez al árbol de escenas

func _ready():

pass  # No se requiere acción en este ejemplo


# Llamada cada frame. 'delta' es el tiempo transcurrido desde el frame anterior

func _process(delta):

tiempo_transcurrido += delta# NOVEDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD




if tiempo_transcurrido >= 16.0:# NOVEDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD




queue_free() # NOVEDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD


# Actualiza el tiempo transcurrido

elapsed_time += delta


# Ejecuta el traslado mientras no haya excedido el tiempo de espera

if elapsed_time < stop_time:

# Obtiene la traducción actual de la cámara

var current_translation = global_transform.origin


# Crea un nuevo vector de traducción con el movimiento deseado en el eje X

var new_translation = Vector3(translation_amount, 0.0, 0.0)  # Movimiento en el eje X


# Combina la traducción actual con el movimiento deseado

var final_translation = current_translation + new_translation


# Actualiza la transformación global de la cámara con la nueva traducción

global_transform.origin = final_translation

else:

# Detiene el movimiento después del tiempo de espera

print("Traslado detenido")  # Puedes reemplazar con la acción deseada





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

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

Utilidad del script: Todo mediante script mueve la camara en un eje y a los pocos segundos la camara se borra, y utilizara la escena la camara que tiene el player, un cambio de enfoques de camara tipo de cine que me gusta mucho utilizar en mis juegos ultimamente

miércoles, 10 de julio de 2024

Anotaciones para hacer animaciones que se puedan usar en Godot 4.2 desde Blender;

 

Estoy haciendo animaciones con blender para pasarlas a Godot 4.2, y por programacion asignarles a un personaje, con  diferentes animaciones, pongo una captura de pantalla que me resulta fundamental para que Godot reconozca las animaciones que quiero poner, 
y estoy trabajando con este script:

extends Node3D




var animacion_actual = "LEBANTAPIE"




func _physics_process(delta):


# Agacharse


if Input.is_action_pressed("ui_down"):


if animacion_actual != "LEBANTAPIE":


$AnimationPlayer.play("LEBANTAPIE")


animacion_actual = "LEBANTAPIE"




# Acción del motor del juego


elif Input.is_action_pressed("ui_up"):


if animacion_actual != "GIRAPIE":


$AnimationPlayer.play("GIRAPIE")


animacion_actual = "GIRAPIE"




# Saltar


elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "GIRAPIE":


$AnimationPlayer.play("GIRAPIE")


animacion_actual = "GIRAPIE"




# Moverse hacia la izquierda


elif Input.is_action_pressed("ui_left"):


if animacion_actual != "LEBANTAPIE":


$AnimationPlayer.play("LEBANTAPIE")


animacion_actual = "LEBANTAPIE"




# Moverse hacia la derecha


elif Input.is_action_pressed("ui_right"):


if animacion_actual != "GIRAESPALDA":


$AnimationPlayer.play("GIRAESPALDA")


animacion_actual = "GIRAESPALDA"







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

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

Funciona pero se me metio en la cabeza hacer las animaciones manualmente, lo mas complicado hacer andar, pero e visto algun tutorial con esquemas  ilustraciones de poses andando y creo que practicando un pelin, bueno practicando un monton je je je je je¡¡¡¡ lo are bien, las demas animaciones seran muy faciles de hacer, lo tengo comprobado, sobre todo el personaje sentado, escribiendo, o rascandose la cabeza me resulta facil, o golpeando con brazos o pies,

 ahora estoy muy verde aun pero estoy seguro que lo boy a conseguir

martes, 9 de julio de 2024

GDScript para cambiar de escena por tiempo transcurrido y tambien para salir del juego presionando tecla Esc....escape;

extends WorldEnvironment




var tiempo_transcurrido = 0.0  # Variable para almacenar el tiempo transcurrido


func _process(delta):


if Input.is_action_pressed("ui_cancel"):

get_tree().quit()









tiempo_transcurrido += delta


# Si han pasado 20 segundos, elimina el nodo

if tiempo_transcurrido >= 18.0:

#queue_free()

var siguiente_escena = preload("res://LAS SEIS ESCENAS CORTAS DE ENTRADA/LA 1 PLANETA TIERRA EXPLOTA/1DE1.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 # Replace with function body.

domingo, 7 de julio de 2024

Por script traslada una camara en eje x con GDScript Godot 4.2; Y a los 3 segundos se detiene;

 extends Camera3D


# Define la cantidad de desplazamiento en el eje X

var translation_amount = 0.0009  # Ajusta este valor según tus necesidades


# Tiempo de espera para detener el movimiento (en segundos)

var stop_time = 3.0


# Variable para controlar el tiempo transcurrido

var elapsed_time = 0.0


# Llamada cuando el nodo ingresa por primera vez al árbol de escenas

func _ready():

pass  # No se requiere acción en este ejemplo


# Llamada cada frame. 'delta' es el tiempo transcurrido desde el frame anterior

func _process(delta):

# Actualiza el tiempo transcurrido

elapsed_time += delta


# Ejecuta el traslado mientras no haya excedido el tiempo de espera

if elapsed_time < stop_time:

# Obtiene la traducción actual de la cámara

var current_translation = global_transform.origin


# Crea un nuevo vector de traducción con el movimiento deseado en el eje X

var new_translation = Vector3(translation_amount, 0.0, 0.0)  # Movimiento en el eje X


# Combina la traducción actual con el movimiento deseado

var final_translation = current_translation + new_translation


# Actualiza la transformación global de la cámara con la nueva traducción

global_transform.origin = final_translation

else:

# Detiene el movimiento después del tiempo de espera

print("Traslado detenido")  # Puedes reemplazar con la acción deseada




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

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

UNA CONCLUSION SOBRE EL SCRIPT:


Una conclusion muy facil para jugar mas con este escript cambiar el eje , en lugar de x el z o el y, poner en negativo el var translation_amount = 0.0009  por un var translation_amount = -0.0009    iria en direccion contraria, me ahorro asi animar por "animate" me refiero hacer una pelicula de unos segundos, creo mucho mejor hacer por script todo lo que se pueda hacer.....




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

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

Experimentando  el anterior script y me funciona en otro angulo y con otro tipo de nodo, con un extends RigidBody3D

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


extends RigidBody3D


 




# Define la cantidad de desplazamiento en el eje X


var translation_amount = -0.0008  # Ajusta este valor según tus necesidades




# Tiempo de espera para detener el movimiento (en segundos)


var stop_time = 11




# Variable para controlar el tiempo transcurrido


var elapsed_time = 0.0




# Llamada cuando el nodo ingresa por primera vez al árbol de escenas


func _ready():


pass  # No se requiere acción en este ejemplo




# Llamada cada frame. 'delta' es el tiempo transcurrido desde el frame anterior


func _process(delta):


# Actualiza el tiempo transcurrido


elapsed_time += delta




# Ejecuta el traslado mientras no haya excedido el tiempo de espera


if elapsed_time < stop_time:


# Obtiene la traducción actual de la cámara


var current_translation = global_transform.origin




# Crea un nuevo vector de traducción con el movimiento deseado en el eje X


var new_translation = Vector3(0.0, 0.0, translation_amount)  # Movimiento en el eje X






# Combina la traducción actual con el movimiento deseado


var final_translation = current_translation + new_translation




# Actualiza la transformación global de la cámara con la nueva traducción


global_transform.origin = final_translation


else:


# Detiene el movimiento después del tiempo de espera


print("Traslado detenido")  # Puedes reemplazar con la acción deseada



Por script traslada una camara en eje x con GDScript Godot 4.2;

 extends Camera3D


# Define la cantidad de desplazamiento en el eje X

var translation_amount = 0.0003  # Ajusta este valor según tus necesidades


# Llamada cuando el nodo ingresa por primera vez al árbol de escenas

func _ready():

pass  # No se requiere acción en este ejemplo


# Llamada cada frame. 'delta' es el tiempo transcurrido desde el frame anterior

func _process(delta):

# Obtiene la traducción actual de la cámara

var current_translation = global_transform.origin


# Crea un nuevo vector de traducción con el movimiento deseado en el eje X

var new_translation = Vector3(translation_amount, 0.0, 0.0)  # Movimiento en el eje X


# Combina la traducción actual con el movimiento deseado

var final_translation = current_translation + new_translation


# Actualiza la transformación global de la cámara con la nueva traducción

global_transform.origin = final_translation


lunes, 1 de julio de 2024

Script parpadeo de luz con godot, extension extends OmniLight3D;

 extends OmniLight3D


var tiempo_transcurrido: float = 0.0 # Tiempo transcurrido desde el último cambio de estado


func _physics_process(delta):

# Acumular el tiempo transcurrido

tiempo_transcurrido += delta


# Cambiar la visibilidad del CSGCylinder3D cada 0.25 segundos

if tiempo_transcurrido >= 0.25:

visible = !visible # Invertir el estado actual de la visibilidad

tiempo_transcurrido = 0.0