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

domingo, 30 de junio de 2024

Godot script GDScript por tiempo transcurrido hace el cambio de escena a otra diferente; y repaso de hacer el cambio mediante colision;

 extends WorldEnvironment




var tiempo_transcurrido = 0.0  # Variable para almacenar el tiempo transcurrido


func _process(delta):



tiempo_transcurrido += delta


# Si han pasado 20 segundos, elimina el nodo

if tiempo_transcurrido >= 4.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.








EJEMPLO 2ª







extends WorldEnvironment




var tiempo_transcurrido = 0.0  # Variable para almacenar el tiempo transcurrido


func _process(delta):



tiempo_transcurrido += delta


# Si han pasado 20 segundos, elimina el nodo

if tiempo_transcurrido >= 8.0:

#queue_free()

var siguiente_escena = preload("res://LAS SEIS ESCENAS CORTAS DE ENTRADA/LA 2 CENTRAL CON HUMO DESDE FUERA/CHIMENEA CENTRAL.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.


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

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

EXPLICACION: POR TIEMPO CAMBIA DE UNA ESCENA AOTRA , CON OTRO CAMBIO Y SUCESIVAMENTE SE PUEDEN CAMBIAR LAS ESCENAS SOLO POR TIEMPO.....


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

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

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

EN EL INFERIOR REPASO UN CAMBIO DE ESCENA PERO AL OCURRIR UNA COLISION:


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

extends Area3D


func _ready():

pass # Replace with function body.


func _process(delta):

pass


func _on_area_entered(area):

var siguiente_escena = preload("res://LA-4.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.




jueves, 27 de junio de 2024

juego "dungeon";

 


lunes, 24 de junio de 2024

Script en GDScript instancia 3 objetos diferentes en una colision;

 extends Area3D

var Esferauno = preload("res://ARCHIBOS DE MAZMORRA 4 NUEVOS/ARMADURAS/solocadena_caida_de_cadena2.tscn")


var Esferauno1 = preload("res://INMUEBLES/BOLA PRESO.tscn")


var Esferauno2 = preload("res://OBJETOS DENTRO DE LAS MAZMORRAS DE RELLENOS/bultocadenado.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")


var Esferauno = Esferauno.instantiate()

var Esferauno1 = Esferauno1.instantiate()

var Esferauno2 = Esferauno2.instantiate()

add_child(Esferauno)

add_child(Esferauno1)

add_child(Esferauno2)

get_node("CollisionShape3D").queue_free()

#$"BERDUGO CON ANIMACION Y CAPUCHA".queue_free()

#$"StaticBody3DREFUERZOPUERTA 0".queue_free()

$CADENADEPRINCESA5.queue_free()

pass # Replace with function body.

Script en GDScript instancia 2 objetos diferentes en una colision;

extends Area3D

var Esferauno = preload("res://ARCHIBOS DE MAZMORRA 4 NUEVOS/ARMADURAS/solocadena_caida_de_cadena2.tscn")


var Esferauno1 = preload("res://INMUEBLES/BOLA PRESO.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")


var Esferauno = Esferauno.instantiate()

var Esferauno1 = Esferauno1.instantiate()

add_child(Esferauno)

add_child(Esferauno1)

get_node("CollisionShape3D").queue_free()

#$"BERDUGO CON ANIMACION Y CAPUCHA".queue_free()

#$"StaticBody3DREFUERZOPUERTA 0".queue_free()

$CADENADEPRINCESA5.queue_free()

pass # Replace with function body.