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..........


miércoles, 28 de febrero de 2024

Nuevo script para Godot4.2 para animar un personaje que sin presionar tecla ya tiene una animacion en bucle;

extends Node3D


var animacion_actual = "ANDAR"


func _physics_process(delta):


    # Agacharse


    if Input.is_action_pressed("ui_down"):


        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 : UN PERSONAJE PLAYER QUE AL PRESIONAR TECLAS FLECHAS AGA 2 MOVIMIENTOS DIFERENTES, PERO QUE SIN PRESIONAR NADA YA TENGA UN MOVIMIENTO EN BUCLE, 

martes, 27 de febrero de 2024

viva itch.io;

 






juego de exploracion en godot teclas w-a-s-d mouse botones  espacio, teclas flechas y m para reiniciar, explora y dispara y descubre mujeres , es un prototipo del que abuse en tema de memoria, pero en fin es gratuito, si alguien quiere poner algun donativo bien benido.............

lunes, 26 de febrero de 2024

SOBRE GODOT 4.2 OPINION EN TEMA DE MEMORIA Y RECURSOS;

 En unos 3 meses de aprender y probar godot4.2 y consiguiendo programar cosas esenciales, 

instanciar objetos, rotarlos, moverlos, animar, borrar, comprender un poco las señales y los scripts gdscript, conseguir algo en efectos de particulas y efectos de tela y ropa....

.ahora me encuentro que la memoria es mas complicada de equilibrar  que usando Unity,

 de todas formas espero que usando inteligentemente el tema de "instanciar" y "lod" podre hacer juegos fluidos...

mirare de ir trabajando por habitaciones o sectores y que por ejemplo un personaje al estar en una habitacion al pasar por una de sus puertas instanciando carge un nuevo escenario y borre completamente el anterior para hacer como una especie de niveles......

.Estoy con buenos logros, pero ahora me falta, como diria, velocidad desarrollando por lo novedoso que es para mi Godot4.2  con Unity estuve unos 10 años aprendiendo y usando y lo tenia mas de la mano, y con Godot 4.2 llevo unos 3 meses, asi que no me rindo me encanta Godot y seguire con Godot.

domingo, 25 de febrero de 2024

Nueva forma de rotar un extends MeshInstance3D con Godot4.2;

 extends MeshInstance3D



# Velocidad de rotación (grados por segundo)

var rotation_speed = 290.0  # Ajusta el valor para cambiar la velocidad


# Función llamada al entrar el nodo en la escena

func _ready():

pass


# Función llamada cada fotograma

func _physics_process(delta):

# Calcular la rotación en base al delta y la velocidad

var angle = delta * rotation_speed

# Aplicar la rotación al eje Y del nodo

rotation.y += angle



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

otro ejemplo 

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

extends SoftBody3D


# Velocidad de rotación (grados por segundo)

var rotation_speed = 0.0  # Ajusta el valor para cambiar la velocidad


# Función llamada al entrar el nodo en la escena

func _ready():

pass


# Función llamada cada fotograma

func _physics_process(delta):

# Calcular la rotación en base al delta y la velocidad

var angle = delta * rotation_speed

# Aplicar la rotación al eje Y del nodo

rotation.y += angle

miércoles, 21 de febrero de 2024

destruir por colision un cubo e instanciar en su lugar una esfera con godot4.2;

 extends Area3D

var Esferauno = preload("res://GRAFICOS/ESTUDIO DE ROSCAS CON PERSONAJE/esferauno.tscn")


func _ready():

# Replace with function body.

pass


func _process(delta):

# Replace with function body.

pass





func _on_area_entered(area):

var parent = get_parent()


var cubouno = parent.get_node("cubouno")

 


get_node("cubouno").queue_free()

pass # Replace with function body.



func _on_area_exited(area):

var Esferauno = Esferauno.instantiate()


add_child(Esferauno)

pass # Replace with function body.

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

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

ESTE SCRIPT ES PERFECTO. EXPLICACION:

EN REALIDAD SOLO ES EL ORDEN DE LOS GRAFICOS EN LA ESCENA.......PARTIENDO DEL NODO RAIZ QUE ES UN WorldEnvironment EN MI JUEGO SALE DESDE EL WorldEnvironment UN HIJO QUE ES UNA AREA3D Y DE ESA AREA3D SALE  EL COLISIONSHAPE3D DE HIJO DEL AREA 3D Y DE HIJO DEL COLISIONSHAPE3D SALE EL CUBO QUE ES DE TIPO CGSBOX3D, ,,, LA ESFERA ES UNA ESCENA NUEVA QUE ESTA EN LA CARPETA 

"res://GRAFICOS/ESTUDIO DE ROSCAS CON PERSONAJE/esferauno.tscn"


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

EL SCRIPT ESTE ES PERFECTO..........EL DE AVAJO ...EL PRIMERO EL DE ARRIBA NO FUNCIONA PERFECTO SE BLOQUEA DESDE EL MOTOR DE JUEGOS GODOT4.2 CUANDO SE BUELVE A REPETIR EL DISPARO......

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



extends Area3D
var Esferauno = preload("res://GRAFICOS/ESTUDIO DE ROSCAS CON PERSONAJE/esferauno.tscn")

func _ready():
# Replace with function body.
pass

func _process(delta):
# Replace with function body.
pass




func _on_area_entered(area):
var parent = get_parent()

var CollisionShape3Dcubo = parent.get_node("CollisionShape3Dcubo")
 

get_node("CollisionShape3Dcubo").queue_free()
pass # Replace with function body.


func _on_area_exited(area):
var Esferauno = Esferauno.instantiate()

add_child(Esferauno)
pass # Replace with function body.

martes, 20 de febrero de 2024

Estudio de colision y de cambio de cubo en una esfera con Godot4.2 3dimensiones;

 extends Area3D


var cubo_prefab = preload("res://cubo.tscn")  # Prefab del cubo

var esfera_prefab = preload("res://esfera.tscn")  # Prefab de la esfera


func _ready():

pass


func _on_area_entered(area):

# Reemplazar el cubo con una esfera

var cubo = get_node("Cubo")

cubo.queue_free()

var esfera = esfera_prefab.instantiate()

esfera.set_transform(cubo.get_transform())

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

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

EXPLICACION: Tengo dificultades con los enemigos cuando les disparo y ago el cambio a fallecido, cambiando al personaje, funciona bien , pero si buelbe a pasar el proyectil en el motor de juegos se bloquea el juego , cuando lo compilo para windows con el .exe ejecutable no se bloquea pero se repite el personaje fallecido y se superpone uno encima del otro a cada nuevo disparo...asi que e de empezar con algo simple como este script que me proporciono la IA ....no lo e probado aun no se si funciona y e de saber aplicarlo tambien, si funciona partiendo de esa base haber si soluciono mi error.......

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

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

otro ejemplo a estudiar tambien

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

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

extends Node


var cubo = get_parent()


func _ready():

pass


func _on_area_entered(area):

# Reemplazar el cubo con una esfera

cubo.queue_free()

var esfera = esfera_prefab.instantiate()

esfera.set_transform(cubo.get_transform())



JUEGOS MIOS, MIRA JUEGA COMPRA O JUEGA GRATIS TAMBIEN;

 JUEGOS MIOS, MIRA JUEGA COMPRA O JUEGA GRATIS TAMBIENcliquea aqui y accede en este enlace azul

Promocionando un juego que me lo trabaje un monton cuando usaba Unity; venga comprar algo alguien¡¡¡¡;

 

lunes, 19 de febrero de 2024

Adelantos con godot ideas de trabajarlo, colisiones y enemigos y hacer un campo de hierva;

 Tengo unos 3 meses y pico de practicas y estudios con Godot4.2 y se me a ocurrido una manera de suplir carencias, como los colisionadores que no adaptan la forma de una rosca, consultando a la IA, me dio la idea de rellenar una rosca con coliders colisionadores, de cubos o esferas que esten dentro de una rosca esta a su vez cubre a un personaje, un enemigo por ejemplo, entonces puedo hacer dos roscas con sus respectivos colisionadores en su interior que al tener un contacto consiga 1ª instanciar un enemigo, el mismo pero por ejemplo muriendo y 2ª que la otra rosca con sus respectivos colisionadores borren al enemigo original..es unas idea que aun no e puesto en practica y que trabajare estos siguientes dias, en parte ya lo e echo, pero con paredes que cubren al enemigo, 4 en concreto, pero hay fallos si los impactos son ladeados, con una rosca pienso es mas definido el efecto que quiero hacer.......


y para hacer hiervas en el suelo muy facil con gimp y partiendo de una plano trasparente y formato PNG que es el que soporta transparencias, hacer una escena y copias de esta e ir haciendo duplicados y emparentando los archivos de imagen PNG.......

Luce chulo, y esta echo en un pis pas¡¡¡¡¡¡




domingo, 18 de febrero de 2024

Animar con Godot4.2 3d y GDScript 3 animaciones con teclas flechas del pc;

 extends Node3D




var animacion_actual = "Game_engineAction"




func _physics_process(delta):


# Agacharse


if Input.is_action_pressed("ui_down"):


if animacion_actual != "SEAGACHA_001":


$AnimationPlayer.play("SEAGACHA_001")


animacion_actual = "SEAGACHA_001"




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


$AnimationPlayer.play("Game_engineActionr")


animacion_actual = "Game_engineAction"




# Moverse hacia la izquierda


elif Input.is_action_pressed("ui_left"):


if animacion_actual != "cabezaalnteatras":


$AnimationPlayer.play("cabezaalnteatras")


animacion_actual = "cabezaalnteatras"




# Moverse hacia la derecha


elif Input.is_action_pressed("ui_right"):


if animacion_actual != "Esconder accion]_001":


$AnimationPlayer.play("Esconder accion]_001")


animacion_actual = "Esconder accion]_001"

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

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

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

EXPLICACION: desde blender grabo animaciones y por script en godot logro que funcionen perfectamente, aremos de hijo de un player estos adelantos y poder movernos y animarnos con diversos tipos de movimientos y acciones---------trabajo de chinos hay vamos-----------

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

Script para Godot4.2 3d cuando presiono boton del mouse me instancia particulas;

 extends Area3D


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


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


var particulas = Particulas.instantiate()



add_child(particulas)

Script para Godot 4.2 al presionar boton del mouse mantiene la rotacion si sigue presionado el boton;

 extends MeshInstance3D


# Speed of rotation (radians per second)

var rotation_speed: float = 90.0


# Stores button press state

var mouse_button_pressed: bool = false


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

# Rotate based on mouse button press and delta time

if mouse_button_pressed:

rotate_z(rotation_speed * delta)


# Called when a mouse button is pressed.

func _input(event):

if event is InputEventMouseButton:

# Handle left mouse button press and release events

if event.button_index == 1:

# Update button press state based on event type

mouse_button_pressed = event.pressed