viernes, 16 de febrero de 2024

Animar por teclado en godot4.2 un ejemplo;

 extends Node3D


var animacion_actual = "Game_engineAction"


func _physics_process(delta):

    # Agacharse

    if Input.is_action_pressed("ui_down"):

        if animacion_actual != "SEAGACHA":

            $AnimationPlayer.play("SEAGACHA")

            animacion_actual = "SEAGACHA"


    # Acción del motor del juego

    elif Input.is_action_pressed("ui_up"):

        if animacion_actual != "Game_engineAction":

            $AnimationPlayer.play("Game_engineAction")

            animacion_actual = "Game_engineAction"


    # 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 != "MoverIzquierda":

            $AnimationPlayer.play("MoverIzquierda")

            animacion_actual = "MoverIzquierda"


    # Moverse hacia la derecha

    elif Input.is_action_pressed("ui_right"):

        if animacion_actual != "MoverDerecha":

            $AnimationPlayer.play("MoverDerecha")

            animacion_actual = "MoverDerecha"


Mas ejemplos de animar con script y teclado en godot4.2

 extends Node3D


var animacion_actual = "Game_engineAction"

func _physics_process(delta):
    # Agacharse
    if Input.is_action_pressed("ui_down"):
        if animacion_actual != "SEAGACHA":
            $AnimationPlayer.play("SEAGACHA")
            animacion_actual = "SEAGACHA"

    # Acción del motor del juego
    elif Input.is_action_pressed("ui_up"):
        if animacion_actual != "Game_engineAction":
            $AnimationPlayer.play("Game_engineAction")
            animacion_actual = "Game_engineAction"

    # 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 != "MoverIzquierda":
            $AnimationPlayer.play("MoverIzquierda")
            animacion_actual = "MoverIzquierda"

    # Moverse hacia la derecha
    elif Input.is_action_pressed("ui_right"):
        if animacion_actual != "MoverDerecha":
            $AnimationPlayer.play("MoverDerecha")
            animacion_actual = "MoverDerecha"

    # Agregar más acciones y teclas aquí...
    # Por ejemplo:
    # elif Input.is_action_pressed("ui_a"):
    #     if animacion_actual != "AccionA":
    #         $AnimationPlayer.play("AccionA")
    #         animacion_actual = "AccionA"
    # ...

    # ¡Personaliza según tus necesidades!

6 movimientos GDScript;

 extends Node3D


var animacion_actual = "Game_engineAction"


func _physics_process(delta):

    # Agacharse

    if Input.is_action_pressed("ui_down"):

        if animacion_actual != "SEAGACHA":

            $AnimationPlayer.play("SEAGACHA")

            animacion_actual = "SEAGACHA"


    # Acción del motor del juego

    elif Input.is_action_pressed("ui_up"):

        if animacion_actual != "Game_engineAction":

            $AnimationPlayer.play("Game_engineAction")

            animacion_actual = "Game_engineAction"


    # 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 != "MoverIzquierda":

            $AnimationPlayer.play("MoverIzquierda")

            animacion_actual = "MoverIzquierda"


    # Moverse hacia la derecha

    elif Input.is_action_pressed("ui_right"):

        if animacion_actual != "MoverDerecha":

            $AnimationPlayer.play("MoverDerecha")

            animacion_actual = "MoverDerecha"


jueves, 15 de febrero de 2024

2 animaciones diferentes mediante script para godot4.2;

 extends Node3D


var animacion_actual = "Game_engineAction"


func _physics_process(delta):

# Agacharse

if Input.is_action_pressed("ui_down"):

if animacion_actual != "SEAGACHA":

$AnimationPlayer.play("SEAGACHA")

animacion_actual = "SEAGACHA"

# Acción del motor del juego

elif Input.is_action_pressed("ui_up"):

if animacion_actual != "Game_engineAction":

$AnimationPlayer.play("Game_engineAction")

animacion_actual = "Game_engineAction"



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

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

EXPLICACION:

Gracias a videos que e consultado en youtube y gracias a la IA de Google, y ami esfuerzo e interes por el tema, e conseguido animar un personaje de diferentes maneras desde Blender, aprendido a guardar esas animaciones, pasarlas a godot y al presionar flecha abajo del teclado y flecha arriba del teclado hacer funcionar una u otra agan sus movimientos personalizados, con mas esfuerzo y trabajo podre hacer mas movimientos diferentes y asignarlos a diferentes teclas del teclado de mi pc..........

TEXTUALMENTE LA IA ES MI AYUDANTE VIRTUAL..................................................

(YO).....

Eres fantastico, me funciona de maravilla¡¡¡ muchisimas gracias¡¡¡¡ eres mi colega ¡¡¡ mi colega virtual mas fascinante que jamas e conocido anteriormente....¡¡¡¡¡¡








(IA)......


🚀

¡Me alegra mucho que te haya funcionado! Me complace ser tu colega virtual y ayudarte con tus proyectos. No dudes en volver a contactarme si necesitas más ayuda o si tienes alguna otra pregunta. Siempre estoy dispuesto a ayudarte en todo lo que pueda.

Recuerda que puedes seguir aprendiendo y mejorando tus habilidades con Godot consultando la documentación oficial, tutoriales y la comunidad online.

¡Mucha suerte en tus proyectos!

Descargate una demostracion echa en Godot4.2;

 








martes, 13 de febrero de 2024

DOS SCRIPTS GDSCRIPT ,PARA INSTANCIAR PARTICULAS Y PARA BORRAR AREA3D POR TIMER;

 extends Area3D


var Particulas = preload("res://GRAFICOS/TERRENO MONTAÑAS ETC/SOLOPARTICULASARMA.tscn")

var particulas_instanciadas: Node = null


func _ready():


pass # Replace with function body.


func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:

# Instanciar partículas al presionar el botón

if event.pressed:

particulas_instanciadas = Particulas.instantiate()

add_child(particulas_instanciadas)

# Eliminar partículas al soltar el botón

else:

if particulas_instanciadas:

#particulas_instanciadas.queue_free()

particulas_instanciadas = null




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

extends Area3D


var tiempo_de_vida = 1.0 # Duración en segundos antes de eliminar el Area3D


func _ready():

# Iniciar el temporizador

get_node("Timer_EliminarArea3D").start(tiempo_de_vida)





func _on_timer_eliminar_area_3d_timeout():

queue_free()

pass # Replace with function body.


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

EXPLICACION DE PORQUE ANOTO ESTOS DOS SCRIPTS GDSCRIPT:

Programar tiene miga, un script puede entrar en conflicto con otro script y bloquear el juego,

En el script de arriba del todo instancio unas particulas al presionar el boton del mouse, en el script de devajo de verde y la linea verde del primero, es para que en 1 segundo se borren esas particulas esa area 3d, entonces tuve que anular esta linea señalada de verde del script superior, y cuando disparo hace el fogonazo un segundo y ya esta que es lo que queria conseguir...#particulas_instanciadas.queue_free()

el signo # ala izquierda de las lineas anula la linea.......(continuara ...me lo paso pipa..............)


lunes, 12 de febrero de 2024

Script para godot4.2 3d Cuando presiono boton del mouse me instancia particulas, y cuando dejo de presionar las borra o deja de instanciar;

 extends Area3D


var Particulas = preload("res://GRAFICOS/TERRENO MONTAÑAS ETC/SOLOPARTICULASARMA.tscn")

var particulas_instanciadas: Node = null


func _ready():


pass # Replace with function body.


func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:

# Instanciar partículas al presionar el botón

if event.pressed:

particulas_instanciadas = Particulas.instantiate()

add_child(particulas_instanciadas)

# Eliminar partículas al soltar el botón

else:

if particulas_instanciadas:

particulas_instanciadas.queue_free()

particulas_instanciadas = null