lunes, 15 de abril de 2024

GDScript proboca explosion y borra barco y sale barco roto, instancia explosion bolas instancia barco roto y borra barco sin destruir;

 extends Area3D


var esfera_prefab = preload("res://BARCO Y ELEMENTOS DEL BARCO/BOTE/BOTECAIDO.tscn")  # Precarga el prefab del barco (bote caído)

var explosion_prefab = preload("res://ESCENAS/EXPLOSION BAJO BOTE.tscn")  # Precarga el prefab de la explosión (invento genial)


# Called when the node enters the scene tree for the first time.

func _ready():

pass  # No hay necesidad de código inicial en este ejemplo


# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta):

pass  # No hay necesidad de código por frame en este ejemplo


# Detecta cuando otro nodo entra en el área

func _on_area_entered(area):

# Verifica si el objeto que entró tiene un nodo CollisionShape3D

if area.has_node("CollisionShape3D"):


var barco_instancia = esfera_prefab.instantiate()


# Crea una instancia del prefab de la explosión (invento genial)

var explosion_instancia = explosion_prefab.instantiate()


# Agrega las instancias como hijos de este nodo

add_child(barco_instancia)

add_child(explosion_instancia)


# Detecta cuando otro nodo sale del área (opcional)

func _on_area_exited(area):

var parent = get_parent()


var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")


get_node("CollisionShape3D").queue_free()  # Intento de eliminar CollisionShape3D propio (comentado)

---------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
EXPLICACION:::::::
estructura padres e hijos .. padre principal de todo  WorldEnvironment hijo donde esta el script un Area3d esta tiene de nieto un CollisionShape3D de este sale dos vicnietos un MeshInstance3D y otro MeshInstance3D con nombre "bote2


Instancia bolas cuando entra en un Area3d el player y cuando presiona boton del mouse, para godot 4,2 3D; GDScript;

 extends Area3D


var Bullet = preload("res://ESCENAS/EXPLOSION BAJO BOTE.tscn")


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


var bullet = Bullet.instantiate()



add_child(bullet)



func _on_area_entered(area):

var bullet = Bullet.instantiate()



add_child(bullet)

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

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

En el script de debajo funciona solo cuando pasa por su Area3d, pusimos signo"#" a lo que no queremos que ejecute

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

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

extends Area3D var Bullet = preload("res://ESCENAS/EXPLOSION BAJO BOTE.tscn") func _ready(): pass # Replace with function body. #func _input(event): #if event is InputEventMouseButton: #if event.button_index == 1: #var bullet = Bullet.instantiate() #add_child(bullet) func _on_area_entered(area): var bullet = Bullet.instantiate() add_child(bullet)




A los 3 segundos borra nodo3d, y todo su contenido para Godot 4.2; Script GDScript;

 extends Node3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):

# Actualizar el tiempo transcurrido

tiempo_transcurrido += delta


# Eliminar el nodo después de 3 segundos

if tiempo_transcurrido >= 3.0:

queue_free() # Elimina el nodo de la escena