miércoles, 6 de marzo de 2024

SCRIPT EN GDSCRIPT PARA GODOT4.2 3D PARA TRASLADAR SUAVEMENTE POR EJE "Y" ;

 extends MeshInstance3D



var speed = 0.2  # Unidades por segundo


#var tiempo_transcurrido = 0.0  # Tiempo en segundos




# Función que se ejecuta en cada frame


func _process(delta):


# Calcular movimiento basado en la velocidad y el tiempo delta


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




# Aplicar el movimiento a la posición del nodo


translate(movimiento)


Ejemplo de cambiar de escena con Godot 4.2 3d;

 extends Node


func _on_Area3D_body_entered(body: Node):

if body.name == "Player":

# Cambiar a la siguiente escena.

get_tree().change_scene("res://Escena_2.tscn")

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

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

notas: 

un script para godot 4.2 3d en el que hay 2 escenas, en una el player pasa por un area3d y al tocar esa area se cambia a la escena siguiente, el player tiene su propio colider, y el area3d tambien, para que detecte las colisiones, hazlo simple, explica en español, y si es posible que use solo la memoria que gaste cada escena .....................

Consultado a la IA, me a echo el script de arriba pero aun e de probarlo y razonarlo, de todas formas lo pongo en el blog porque es un script muy corto....ya lo estudiare y lo ratificare mas adelante.........


LO QUE ME EXPLICA LA IA: 

Explicación del script:

  • _on_Area3D_body_entered es una función que se llama cuando un nodo entra en el área 3D.
  • body es el nodo que ha entrado en el área.
  • Se comprueba si el nombre del nodo que ha entrado es "Player".
  • Si se cumple la condición, se cambia a la escena "Escena_2.tscn".

4. Optimización de memoria:

  • Utilizar la carga diferida de escenas: Puedes configurar la carga diferida para las escenas que no se necesitan de inmediato. Esto reduce la cantidad de memoria utilizada al inicio del juego.
  • Eliminar objetos no utilizados: Elimina los objetos que ya no sean necesarios de la escena para liberar memoria.
  • ------------------------------------------------------------------------------------------------------------------------
  • -------------------------------------------------------------------------------------------------------------------------
  • NOTAS: la IA me ayuda un monton pero hay que saber razonarlo y aplicarlo, mas adelante usare y probare esta informacion.....de mientras miro tutoriales de youtube....cuanta mas informacion y mas practicas y mas se trabaje el tema mas pronto se aprende.

lunes, 4 de marzo de 2024

Otra forma de borrar un label trancurrido tiempo con Godot4.2; y siempre ayudandome de una IA; tambien borrar un RigidBody3D;

 extends Label


var tiempo_de_vida = 3.0 # Duración en segundos antes de eliminar el Label


func _ready():

# Obtener el Label que queremos usar

var label_tiempo_vida = $"."


# Mostrar el texto del Label en este Label

text = label_tiempo_vida.text


# Iniciar el temporizador

$Timer.start(tiempo_de_vida)


func _on_timer_timeout():

# Eliminar el Label

queue_free()


func _process(delta):

# Si el tiempo de vida ha llegado a 0, eliminar el Label

if tiempo_de_vida <= 0:

_on_timer_timeout()

return


# Reducir el tiempo de vida en cada frame

tiempo_de_vida -= delta



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

explicacion: en esta linea--------

 func _ready():

# Obtener el Label que queremos usar         

 var label_tiempo_vida = $"."          --------



- e arrastrado mi label desde la escena, eso lo razone yo, es indispensable si no se sabe programar como es mi caso, la ayuda de una IA, es como si trabajases con un amigo , la IA es una cosa tremenda, en un primer script la IA me ponia esta linea de codigo , por esta otra-------


func _ready():

# Mostrar el texto

text = "W-A-S-D Y MOUSE BOTONES " + str(tiempo_de_vida) + " segundos."


Escribia el texto directamente, pero a mi me interesaba arrastrar desde la escena el label que ya tenia preparado........y lo e conseguido, fantastico¡¡¡¡¡


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


OTRO EJEMPLO DE BORRAR POR TIEMPO UN   RigidBody3D


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

extends RigidBody3D



var tiempo_de_vida = 2.5  # Duración en segundos antes de eliminar la piedra

func _ready():
# Iniciar temporizador
$Timer.start(tiempo_de_vida)





func _on_timer_timeout():
queue_free()
pass # Replace with function body.


Una forma de borrar un label en godot4.2 transcurrido un tiempo;

 extends Label


var tiempo_de_vida = 12.5 # Duración en segundos antes de eliminar el Label


func _ready():

# Mostrar el texto

text = "W-A-S-D Y MOUSE BOTONES " + str(tiempo_de_vida) + " segundos."


# Iniciar el temporizador

$Timer.start(tiempo_de_vida)


func _on_timer_timeout():

# Eliminar el Label

queue_free()


func _process(delta):

# Si el tiempo de vida ha llegado a 0, eliminar el Label

if tiempo_de_vida <= 0:

_on_timer_timeout()

return


# Reducir el tiempo de vida en cada frame

tiempo_de_vida -= delta


sábado, 2 de marzo de 2024

Futuro proyecto con godot 4.2 en 3d;

 

Con lo que boy aprendiendo y practicando, muestro una captura de video de mi proximo proyecto........

jueves, 29 de febrero de 2024

GDScript para godot4.2 3d movimiento continuo de un area3d y que a los 2 segundos se borra;

 extends Area3D


var speed = 15  # Unidades por segundo

var tiempo_transcurrido = 0.0  # Tiempo en segundos


# Función que se ejecuta en cada frame

func _process(delta):

    # Calcular movimiento basado en la velocidad y el tiempo delta

    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 >= 2.0:

        queue_free()


GDSCRIPT PARA GODOT 4.2 3D MOVIMIENTO CONTINUO LATERAL;

 extends Area3D


var speed = 15  # Unidades por segundo


# Función que se ejecuta en cada frame

func _process(delta):

    # Calcular movimiento basado en la velocidad y el tiempo delta

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


    # Aplicar el movimiento a la posición del nodo

    translate(movimiento)