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.