martes, 2 de abril de 2024

Script para Godot 4.2 3D , contenido en un CPUParticles3D el script , proboca que a los 3 segundos se dirija a una escena diferente del juego;

 extends CPUParticles3D


var tiempo_transcurrido: float = 0.0


# Función que se ejecuta al entrar la escena por primera vez.

func _ready():

pass  # Reemplaza con el cuerpo de la función si es necesario.


# Función que se ejecuta cada frame. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta):

tiempo_transcurrido += delta

if tiempo_transcurrido >= 3.0:

# Cambiar la escena a "otro.tscn"

var siguiente_escena = preload("res://BARCO Y ELEMENTOS DEL BARCO/BARRIL EXPLOSIBO/bidon.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

-------------------------------------------
-------------------------------------------
Explicacion: muy buen script a los 3 segundos borra la escena y se dirije a otra diferente, con estos pasos podre hacer avances muy importantes en godot 4.2 , como player abatido y cambio a escena de este cuando cae y retorno a riniciar el juego, cambios de camaras tambien creo podre hacer.......



--------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
SCRIPT POR PUNTUACION SI LLEGA A LOS 8 PUNTOS BORRA LA ESCENA Y CAMBIA A OTRA CON CAMARA FUNCIONA¡¡¡¡¡¡¡¡
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
extends Area3D  

#var fuerza_intensidad = 110.9  // Variable que define la intensidad de la fuerza que se aplicará en la colisión.
var score = 0  


# Se llama cuando el nodo ingresa al árbol de escena por primera vez.

func _ready():
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar configuraciones iniciales.


# Se llama en cada frame del juego. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta):
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar acciones que se repiten cada frame.


func _on_area_entered(area):  # Se llama cuando otro objeto entra en el área de colisión de este nodo.

# Actualiza el texto del Label3D para mostrar la puntuación actual.
$Label3D.text = str(score)

# Aumenta la puntuación en 1.
score += 1

# Reproduce la animación "EXPLOTA" del AnimationPlayer adjunto al padre de este nodo (../ indica subir un nivel en la jerarquía del árbol de escena).
$"../AnimationPlayer".play("EXPLOTA")

# Reproduce el AudioStreamPlayer3D asociado al AnimationPlayer para generar un sonido de explosión.
$"../AnimationPlayer/AudioStreamPlayer3D".play()
# La parte comentada define una dirección de fuerza, por ahora no se usa en el código.
# var direccion_fuerza = Vector3(fuerza_intensidad, 0.0, 0.0)

# Puedes agregar aquí código para aplicar la fuerza a objetos que entren en colisión.

# Si la puntuación alcanza los 100 puntos, cambia de escena a "AMA".
if score == 8:
var siguiente_escena = preload("res://BARCO Y ELEMENTOS DEL BARCO/BARRIL EXPLOSIBO/bidon.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



Script que al explosionar un recipiente, a los 5 segundos se borran las particulas y se reinicia el juego, en Godot 4.2;

extends CPUParticles3D

var tiempo_transcurrido: float = 0.0


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

tiempo_transcurrido += delta

if tiempo_transcurrido >= 5.0:

get_tree().reload_current_scene()

queue_free()

pass

----------------------------------------------------------------
----------------------------------------------------------------
-----------------------------------------------------------------
EXPLICACION:
Mi player toca un bidon de gasolina, este explota y alos 5 segundos se reinicia el juego ademas de borrar sus particulas.......

Script en Godot 4.2 3d, borra particulas a los 5 segundos;

 extends CPUParticles3D

var tiempo_transcurrido: float = 0.0


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

tiempo_transcurrido += delta

if tiempo_transcurrido >= 5.0:

queue_free()

pass


viernes, 29 de marzo de 2024

Script para Godot 4.2 crea animacion 1 sola vez traslada al personaje en eje "z" y alos 1,8 segundos lo borra del juego;

 extends Node3D

var speed = 15

var tiempo_transcurrido = 0.0


# Variable para controlar si la animación ya se ha reproducido


var animacion_reproducida = false




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


func _ready():


pass  # Mantenemos esta parte sin cambios




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


func _process(delta):

var movimiento = Vector3(0, 0, speed * 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 >= 1.8:

queue_free()



# Si la animación no se ha reproducido aún


if not animacion_reproducida:


# Reproducimos la animación "MUERTASEPONEPIE"


$AnimationPlayer.play("CAE")


# Establecemos la variable a true para indicar que ya se reprodujo


animacion_reproducida = true


Script para Godot 4.2 traslada un objeto en eje "z" ; tambien pruduce su animacion para 1 sola vez y se detiene esta animacion;

 extends Node3D

var speed = 15



# Variable para controlar si la animación ya se ha reproducido


var animacion_reproducida = false




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


func _ready():


pass  # Mantenemos esta parte sin cambios




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


func _process(delta):

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

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

# Aplicar el movimiento a la posición del nodo

translate(movimiento)

Script para Godot 4.2; suma puntos, produce animacion, produce sonido;

 extends Area3D

var score = 0


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

$Label3D.text = str(score)

score += 1

$"../AnimationPlayer".play("EXPLOTA")

$"../AnimationPlayer/AudioStreamPlayer3D".play()

pass # Replace with function body.



-----------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
EXPLICACION;
Esta escript puesto en un Area 3d al player hace que cambie la animacion del player cuando su area3d toca algo , otra area3d , hace que sume 1 punto y hace que produzca un sonido.....El area3d parte del personaje y tiene de hijo un CollisionShape3D y tiene de hijo tambien un Label3D.

miércoles, 27 de marzo de 2024

SCRIPT PARA GODOT 4.2 CUANDO TOCA UN AREA3D EL PLAYER CAMBIA SU ANIMACION Y PRODUCE UN SONIDO;

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

$"../AnimationPlayer".play("EXPLOTA")

$"../AnimationPlayer/AudioStreamPlayer3D".play()

pass # Replace with function body.