jueves, 20 de febrero de 2025

GDScript, para Godot 4.3 efecto de sonido al entrar algo en un Area3d;

 extends Area3D


func _ready() -> void:

# Creamos el nodo AudioStreamPlayer3D

var sonido_al_entrar = AudioStreamPlayer3D.new()

# Lo añadimos como hijo del Area3D

add_child(sonido_al_entrar)

# Cargamos el sonido (reemplaza "res://ruta/al/sonido.wav" con la ruta correcta)

sonido_al_entrar.stream = load("res://SONIDOS/HOMBREALAGUA.mp3")


func _on_area_entered(area: Area3D) -> void:

# Reproducimos el sonido

$AudioStreamPlayer3D.play()


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

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

Exlicacion: En mi nuevo videojuego sobre temas marinos que estoy haciendo con Godot 4.3 queria hacer el efecto de sonido cuando un hombre cae al agua, y lo realice consultando a la IA, y aplicando la ruta donde tenia yo, mi sonido particular "res://SONIDOS/HOMBREALAGUA.mp3".

La IA me resulta muy util pero no lo hace todo, tambien hay que esforzarse y entender, como poner las cosas. Muestro el video pero aqui en este video aun no tiene la captura de video de mi abance, lo pongo para promocionarme ¡¡¡¡¡¡





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()