domingo, 13 de octubre de 2024

Explicacion de la combinacion de dos GDScript, uno borra por tiempo el otro por colision;

extends Area3D

var Esferauno = preload("res://PERSONAJES/MADRE Y FINAL/camera_3d_2_enfoca_rostro_de_madre.tscn")




func _ready() -> void:

pass # Replace with function body.




func _process(delta: float) -> void:

pass



func _on_area_entered(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


var parent = get_parent()




get_node("CollisionShape3D2").queue_free()


pass # Replace with function body.



func _on_area_exited(area):



pass # Replace with function body.


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

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

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

extends Camera3D


var tiempo_transcurrido = 0.0


# Llamado cuando el nodo entra en el árbol de escena por primera vez.

func _ready() -> void:

pass # Replace with function body.


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

func _process(delta: float) -> void:

rotate_x(0.00009)

tiempo_transcurrido += delta


if tiempo_transcurrido >= 19.0:

queue_free()  # Elimina el nodo de la escena


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

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

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

EXPLICACION: 


Queria resolver un problema con mi actual juego en Godot 4.3 y en 3d, y lo resolví con estos dos GDScript, uno es para una simple cámara, muy sencillo simplemente tiene un GDScript para que rote unos grados en su eje “x” y un temporizador para que la cámara se borre alos pocos segundos 19 segundos. Esta cámara no esta en la escena del juego, va a a ser instanciada por el otro GDScript para un Area 3d; el de la cámara,tiene su propio GDScript para lo mencionado anteriormente rotación y borrado a los 19 segundos………


Pasemos al GDScript del Área 3d, cuando el player pasa por el Área 3d este toca un CollisionShape3D2 y produce la instacicion de la cámara, osea su aparición en la escena, como solo me interesa que esa cámara aga su función una sola vez el GDScript esta escrito para que a la vez que instancia la cámara que se borrara a los 19 segundos, borre también exclusivamente el CollisionShape3D2, así cuando el player vuelve a pasar por esa Área ya no vuelve a instanciar esa cámara,porque el CollisionShape3D2 lo provocaba, asi consigo jugar con dos cámara y distintos puntos de vista.


https://perico415.itch.io/

pronto este juego a la venta....................



Y un complemento una ampliacion del GDScript del Area3d para que borre tambien un techo.....

extends Area3D

var Esferauno = preload("res://PERSONAJES/MADRE Y FINAL/camera_3d_2_enfoca_rostro_de_madre.tscn")




func _ready() -> void:

pass # Replace with function body.




func _process(delta: float) -> void:

pass



func _on_area_entered(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


var parent = get_parent()




get_node("CollisionShape3D2").queue_free()

get_node("CollisionShape3D3 de HIJO TIENE TECHO").queue_free()

pass # Replace with function body.



func _on_area_exited(area):



pass # Replace with function body.