jueves, 6 de junio de 2024

BORRA UNA CAMARA AL LOS 3 SEGUNDOS CON GODOT 4.2;

extends Camera3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):


tiempo_transcurrido += delta


if tiempo_transcurrido >= 16.0:


queue_free() # Elimina el nodo de la escena

martes, 4 de junio de 2024

GDScript para Godot 4.2, cuando algo entra en el area3d borra esta y nodos hijos;

extends Area3D



# 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()

$".".queue_free()

$RigidBody3DPALODEEMPUJE/CollisionShape3D.queue_free()

$"CollisionShape3D BORRARLO SI NO VA".queue_free()

pass # Replace with function body.

INSTANCIAR Y BORRAR A LA VEZ NODOS SECUNDARIOS CON GDSCRIPT PARA GODOT 4.2;

 extends Area3D

var Esferauno = preload("res://INMUEBLES/VERDUGO UNO/VERDUGO SIN CAVEZA/NUEVO VERDUGO SIN CAVEZA10.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()


add_child(Esferauno)


get_node("CollisionShape3D").queue_free()

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

$StaticBody3DREFUERZOPUERTA.queue_free()

pass # Replace with function body.

instanciando con godot 4.2 al soltar el boton del mouse;

 extends MeshInstance3D


var Bullet = preload("res://INMUEBLES/ARMAS/espada_2.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):


$AnimationPlayer.play("ESPADAENALTO")

pass

func _input(event):


if event is InputEventMouseButton:


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

#aparece = false

var bullet = Bullet.instantiate()



add_child(bullet)




#queue_free()



#func _input(event):


#if event is InputEventMouseButton:


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

#aparece = true

#queue_free()

jueves, 30 de mayo de 2024

Script GDScript para rotar un node3d en eje "x" y en eje "y"; para Godot 4.2 en 3 dimensiones;

 extends Node3D



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

rotate_x(0.0002)

rotate_y(0.001)

pass

Script para derribar un enemigo y cambiarlo por otro con GDScript, al ser colisionado;

 extends Area3D

var Esferauno = preload("res://INMUEBLES/VERDUGO UNO/VERDUGO SIN CAVEZA/NUEVO VERDUGO SIN CAVEZA10.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()


add_child(Esferauno)


get_node("CollisionShape3D").queue_free()

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


pass # Replace with function body.

domingo, 26 de mayo de 2024

Una IA me comenta mis logros programando y desarrollando con Godot4.2; fascinante diria Spock de Star Trek!!!; Script GDScript para cambiar de escena;

extends Area3D

func _ready():
pass # Replace with function body.

func _process(delta):
pass

func _on_area_entered(area):
var siguiente_escena = preload("res://LA-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.

 😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁

¡Me alegra mucho saber que has encontrado una solución que funciona y que tu idea está en marcha! Parece que estás utilizando un enfoque elegante para activar el cambio de escena. La combinación de un proyectil de corto alcance, un script de autoeliminación basado en un temporizador y un activador de área crea una experiencia fluida e interactiva para el jugador.

Siempre me entusiasma ver cómo los desarrolladores utilizan enfoques creativos para implementar sus ideas de juego. El concepto de usar un proyectil para interactuar con un objeto e iniciar un cambio de escena abre una variedad de posibilidades para la resolución de rompecabezas, la exploración y la mecánica narrativa en tu juego.

Con la combinación correcta de scripts, diseño de niveles y elementos visuales, puedes crear experiencias atractivas e inmersivas que cautiven a tus jugadores. Sigue experimentando, refinando tus ideas y dejando fluir tu creatividad.

Si tienes más preguntas o necesitas ayuda en el camino, no dudes en contactarme. Estoy aquí para apoyarte en tu viaje de desarrollo de juegos.


😁😁😁😁😁😁😁😁😁😁😁😁😁😁

😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁


Siguiendo con mis pruebas, ni disparar nada necesito, ahora pasa por la puerta el player y hace el cambio de escena borrando la antigua, e de buscar el motivo.




nvestigando el cambio de escena al atravesar la puerta en Godot 4.2

Es interesante que hayas cambiado de usar un proyectil para disparar el cambio de escena a tener al jugador pasando directamente por la puerta. Esto abre una interacción más intuitiva y envolvente para el jugador. Exploremos algunas razones potenciales por las que el cambio de escena podría no funcionar de manera consistente cuando el jugador atraviesa la puerta:

1. Detección de área y colisión:

  • Activación de área: Verifica que el activador de área esté configurado correctamente para detectar el objeto del jugador. Asegúrate de que el nodo del jugador esté incluido en la lista de máscaras de colisión o grupos que el activador de área puede detectar.
  • Forma de colisión: Asegúrate de que la forma de colisión para la puerta o el activador de área represente con precisión el área donde el jugador debería activar el cambio de escena. Si la forma de colisión es demasiado pequeña o no se superpone completamente con la trayectoria del movimiento del jugador, es posible que la colisión no se detecte de manera consistente.
  • Posición y rotación: Comprueba la posición y rotación del activador de área o del objeto puerta. Si la trayectoria del movimiento del jugador no intersecta el activador en el ángulo o la posición correctos, es posible que la colisión no se registre.

2. Script de cambio de escena:

  • Conexión: Asegúrate de que el script que maneja el cambio de escena esté conectado correctamente al activador de área o al nodo del jugador. Esto podría implicar conectar una señal del evento de colisión al método o función del script que maneja la lógica del cambio de escena.
  • Lógica de script: Revisa el código en el script de cambio de escena para asegurarte de que está detectando correctamente la interacción del jugador e iniciando el cambio de escena. Comprueba si hay errores o problemas lógicos que podrían estar impidiendo que el cambio de escena se produzca de manera consistente.

3. Movimiento y física del jugador:

  • Controlador de personaje: Si estás utilizando un controlador de personaje para el movimiento del jugador, verifica que la configuración de colisión y el comportamiento del movimiento permitan que el jugador interactúe correctamente con el activador de área o el objeto puerta. Comprueba si hay posibles problemas con el movimiento del jugador al atravesar la puerta o al activar la colisión.
  • Configuración de física: Revisa la configuración de física para el jugador y el objeto puerta. Asegúrate de que la gravedad, la masa y otras propiedades físicas no impidan que el jugador interactúe con la puerta o active el cambio de escena de manera consistente.

4. Depuración y pruebas:

  • Visualizar la colisión: Utiliza las herramientas de depuración de Godot para visualizar las formas de colisión y las áreas en tu escena. Esto puede ayudarte a identificar posibles huecos o superposiciones que podrían estar afectando la detección de colisiones.
  • Depuración paso a paso: Recorre el código en el script de cambio de escena utilizando el depurador de Godot. Esto puede ayudarte a identificar la ubicación exacta donde la lógica del cambio de escena podría estar fallando.
  • Pruebas con diferentes jugadores: Prueba el cambio de escena con diferentes personajes de jugador o configuraciones de movimiento para ver si el problema es específico de una configuración particular.

Si has verificado todos estos puntos y aún no puedes identificar la causa, considera compartir más detalles sobre la configuración de tu proyecto, incluyendo capturas de pantalla de la escena, fragmentos de código y cualquier mensaje de error. Buscar ayuda de la comunidad Godot a través de foros o grupos en línea también podría proporcionar información valiosa.