jueves, 3 de octubre de 2024

Interesante script GDScript, para hacer un circuito cerrado por el que un objeto se mueve continuamente;

 extends PathFollow3D


var speedd =0.07

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

progress_ratio +=delta *speedd

pass



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

EXPLICACION: ago una silla que se mueve sola en una habitacion, utilizo los nodos de padre Path3D de hijo PathFollow3D de nieto un tscn una escena de una silla o un obj, el script lo contiene el nodo PathFollow3D y con este script la silla va moviéndose sola por el escenario......este tema es novedoso para mi lo acabo de probar ahora y me funciona ya iré profundizando mas en el tema.....lo vi en un video de YouTube, lo del tema PathFollow3D y bueno e de practicar y practicar a la primera funciona pero sale diferente de lo que se busca.......



viernes, 27 de septiembre de 2024

Con GDScript para Godot 4.3 ago que un texto vibre tipo Label3D;

 extends Label3D


var strength = 0.009 # Intensidad del temblor

var speed = 0.009     # Velocidad del temblor


func _process(delta):

# Calculamos una pequeña variación aleatoria en las coordenadas X e Y

var random_x = randf_range(-strength, strength)

var random_y = randf_range(-strength, strength)


# Aplicamos la variación al nodo

global_position += Vector3(random_x, random_y, 0.0)

domingo, 15 de septiembre de 2024

Borrar particulas alos pocos segundos para no saturar la memoria en Godot 4.3;

 extends CPUParticles3D

var tiempo_transcurrido = 0.0


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

rotate_y(0.8)

tiempo_transcurrido += delta


if tiempo_transcurrido >= 11.0:

queue_free()  # Elimina el nodo de la escena

jueves, 12 de septiembre de 2024

DOS SCRIPTS GDSCRIPT PARA INSTANCIAR UNA CAMARA EN GODOT 4.3, Y QUE ESTA SE MUEVA Y AGA UN ENFOQUE;

 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.00005)

tiempo_transcurrido += delta


if tiempo_transcurrido >= 16.0:

queue_free()  # Elimina el nodo de la escena


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

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

Explicacion: El script superior solo es para una camara, tiene un temporizador para que se borre transcurridos unos segundos y a la vez hace un leve giro rotatorio en el eje x...................


El script inferior , instancia esa camara, entre otras cosas, tambien instancia una puerta rota en 2 partes , mi idea con Godot es jugar con enfoques de camara porque me gusta mucho el cine y con Godot me gustan los resultados, en el inspector la camara tiene activada la casilla  Current, eso indica prioridad, por que estamos casi todo el tiempo trabajando con la camara que lleva el player detras como hijo, esta no esta activada en Current, pero como es la unica es la que sale constantemente, ahora bien al atravesar cierta puerta, ago que se instancie esta camara con el Current activado que significa prioridad, y entonces ago un cambio de enfoque momentaneo  que enfoca un personaje concreto del juego ,ya que dicha camara al pasar unos segundos se destrulle sola, y retorna la vista del juego a la camara que lleva el player como hijo........y se enfoca  de nuevo el juego como al comienzo, esta operacion la puedo repetir y emplear infinidad de veces, cada vez estoy mas entusiasmado con Godot 4.3

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

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


extends Area3D

var Esferauno = preload("res://PUERTAS Y PUERTAS REVENTADAS/PUERTAROTA.tscn")

var Esferauno2 = preload("res://PUERTAS Y PUERTAS REVENTADAS/PUERTAROTA2.tscn")

var Esferauno3 = preload("res://PERSONAJES/LOCA CORDEROS/camera_3d_2enfocabocabozal.tscn")


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

pass



func _on_area_entered(area):


var parent = get_parent()


var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")



get_node("RigidBody3D PUERTA EMPUJO--INTENTARE BISAGRA").queue_free()


#get_node("RigidBody3D PUERTA EMPUJO--INTENTARE BISAGRA").queue_free()


get_node("CollisionShape3D2").queue_free()


pass # Replace with function body.



func _on_area_exited(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


var Esferauno2 = Esferauno2.instantiate()


add_child(Esferauno2)



var Esferauno3 = Esferauno3.instantiate()


add_child(Esferauno3)


pass # Replace with function body.