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)


GDScript para Godot4.2 3d animacion elavorada con explicacion del GDScript;

 extends Node3D


var animacion_actual = "ANDAR"


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


#if animacion_actual != "CHISPA":


$AnimationPlayer.play("CHISPA")


animacion_actual = "CHISPA"


# Acción del motor del juego


#elif Input.is_action_pressed("ui_up"):

if event is InputEventMouseButton:


if event.button_index == 2:


#if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Saltar


elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "SALTAR":


$AnimationPlayer.play("SALTAR")


animacion_actual = "SALTAR"


# Moverse hacia la izquierda


elif Input.is_action_pressed("ui_left"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Moverse hacia la derecha


elif Input.is_action_pressed("ui_right"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Animación "BALANCE" en bucle


else:


# Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación

if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():


$AnimationPlayer.play("BALANCE")


animacion_actual = "BALANCE"

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

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

EXPLICACION:

resuelto, player que tiene un movi miento continuo, y que si presiono boton izquierdo del raton ,cambia su animacion , si presiono boton derecho del raton cambia a otra animacion y tambien cambia animaciones presionando teclas flechas...(junto teclado numerico)


script GDScript para generar movimientos de un personaje con el mouse botones y con teclas flechas;

 extends Node3D


var animacion_actual = "ANDAR"


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


#if animacion_actual != "CHISPA":


$AnimationPlayer.play("CHISPA")


animacion_actual = "CHISPA"


# Acción del motor del juego


elif Input.is_action_pressed("ui_up"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Saltar


elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "SALTAR":


$AnimationPlayer.play("SALTAR")


animacion_actual = "SALTAR"


# Moverse hacia la izquierda


elif Input.is_action_pressed("ui_left"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Moverse hacia la derecha


elif Input.is_action_pressed("ui_right"):


if animacion_actual != "ANDAR":


$AnimationPlayer.play("ANDAR")


animacion_actual = "ANDAR"


# Animación "BALANCE" en bucle


else:


# Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación

if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():


$AnimationPlayer.play("BALANCE")


animacion_actual = "BALANCE"


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

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

EXPLICACION:

con este script consigo que el personaje player tenga una animacion continua, y que al presionar teclas de las flechas, (al lado teclado numerico) cambie su movimiento y ademas consegui que al presionar boton del raton aga otro movimiento, quiero hacer como un mago que al mover el brazo de diferentes formas aga algun efecto que ire preparando..........