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