jueves, 13 de febrero de 2025

Desarrollando juego marino 3d con Godot 4.3.;

 

https://videojuegosenlineaasaco4.blog... Videojuego pronto a la venta en itchi.io, en https://perico415.itch.io/ Videojuego para +18 años, de simulacion y exploracion en 3d, precios muy asequibles , no mas de $2.55, videojuegos indies. A la venta entre el mes de febrero y de marzo del 2025.

miércoles, 5 de febrero de 2025

Resumen de lo aprendido estos últimos meses en Godot 4.3.;

 😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃

Resumen de lo aprendido estos últimos meses en Godot 4.3.

Rutinas que me sirven para aprender ,y formas de aprovechar algunos recurso últimamente.

La IA me resulta fundamental para aprender a programar GDScript.

Es verdad que resuelve muchas papeletas, pero es que con los ejemplos que resuelve y con las conclusiones que saco estoy empezando a aprender a programar con GDScript.


Hoy por ejemplo, quería borrar alternativamente un Label un texto de pantalla.

La IA me lo resolvió con facilidad, desde hay, aplique ese GDScript para encender y apagar una luz de linterna.

Lo mismo con unas plantas, hice un GDScript para que se moviesen por el viento, y ese mismo GDScript manipulado cambiando los valores, me sirvió para balancear un barco en el agua.


Lo mismo con personajes que están dentro de un Area, en el Area tiene su GDScript para que al chocar algo en ella, se instancien otros elementos que me interesan para el juego, y lo puedo aprovechar solamente cambiando el nombre del GDScript y algunas lineas de código.


Me refiero que pudo hacer docenas de Areas con personajes diferentes y situaciones y elementos y gráficos y sonido y lo que se tercie, con infinidad de combinaciones y solo es el mismo GDScript cambiando su nombre y cambiando 2 o 3 lineas de código.


 😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃


SpotLight3D mediante GDScript encendemos y apagamos una luz; dos ejemplos; dos formas ;

 extends SpotLight3D


# Llamado cuando el nodo entra en el árbol de la escena por primera vez.

func _ready() -> void:

# Aseguramos que la luz esté apagada al inicio

visible = false  # Establecer la visibilidad a falso


# Variable para rastrear el estado de visibilidad

var es_visible: bool = false


# Llamado cada frame. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta: float) -> void:

if Input.is_action_just_pressed("luzcasco"):

es_visible = !es_visible  # Alternar visibilidad

visible = es_visible       # Aplicar el nuevo estado de visibilidad

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

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

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

extends SpotLight3D


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.


# Variable to track visibility state

var is_visible: bool = true


# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

if Input.is_action_just_pressed("luzcasco"):

is_visible = !is_visible  # Toggle visibility

visible = is_visible       # Apply the new visibility state

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

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

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

Explicacion: Dos ejemplos de GDScript para Godot4.3 apagar y encender una luz presionando -Ctrl- cullo mapa de entrada utiliza el nombre de "luzcasco".

En el primer ejemplo la luz empieza estando apagada y en el segundo empieza estando encendida, al presionar -Ctrl- vamos alternando en encendido y apagado,  recordar que hay que configurar El Mapa De Entrada de Godot 4.3 para asignar la tecla -Ctrl-  con cualquier nombre inventado, yo por ejemplo puse "luzcasco" porque es una luz que utilizo en mi ultimo juego que lleva en el casco un personaje.



extends Label GDScript en Godot 4.3, desciente un Label y lo borra de pantalla pasado unos segundos;

 extends Label


@export var velocidad_descenso: float = 50.0 # Velocidad de descenso en píxeles por segundo

@export var tiempo_vida: float = 7.0 # Tiempo en segundos antes de desaparecer


var tiempo_transcurrido: float = 0.0


func _process(delta: float) -> void:

    position.y += velocidad_descenso * delta

    tiempo_transcurrido += delta

    if tiempo_transcurrido >= tiempo_vida:

        queue_free()

GDScript para Godot 4.3, borra un texto label al presionar -Esc- y al volver a presionar lo vuelve a poner;

 extends Label


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.


# Variable to track visibility state

var is_visible: bool = true


# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

if Input.is_action_just_pressed("escapedesalir"):

is_visible = !is_visible  # Toggle visibility

visible = is_visible       # Apply the new visibility state

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

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

Explicacion: Tengo en el blog otros GDScript con el mismo tema, pero este es el perfecto, el otro giraba el texto label 180 grados en la pantalla y se salia del juego y no se podia ver, luego al presionar otra vez -Esc- volvia a girar y se podia ver de nuevo.

martes, 4 de febrero de 2025

Gdscript, para Godot 4.3 sube un Area3d en eje "y" y a los 14 segundos lo borra; borra el Area3d;

 extends Area3D


var self_destruct_time = 14.0

var elapsed_time = 0.0


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

        pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

        elapsed_time += delta

        translate(Vector3(0, 0.019, 0)) # Corrected Vector3 values

        if elapsed_time >= self_destruct_time:

                queue_free()

lunes, 3 de febrero de 2025

Ejemplo de instanciar 3 elementos diferentes mediante GDScript de Godot 4.3;

 extends Area3D

#var Esferauno = preload("res://PERSONAJES MACABROS/ARAÑA/EXPLOTADA ARAÑA.tscn")

var Esferauno = preload("res://ELEMENTOS MARINOS/OSTRAABIERTA2 MUY ABIERTA.tscn")

var Esferados = preload("res://ELEMENTOS MARINOS/DIAMANTE1.tscn")

var Esferatres = preload("res://TIAS/tiadesnudaJ.tscn")

# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

pass



func _on_area_entered(area: Area3D) -> void:


var parent = get_parent()


var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")


var Esferados = Esferados.instantiate()


add_child(Esferados)

var Esferatres = Esferatres.instantiate()


add_child(Esferatres)



get_node("CollisionShape3D").queue_free()


#get_node().queue_free()

pass # Replace with function body.




func _on_area_exited(area: Area3D) -> void:


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


pass # Replace with function body.