domingo, 23 de febrero de 2025

Sumar puntos con godot 4.3; GDScript; Y AL ALCANZAR 6 PUNTOS CAMBIAR LA ESCENA;

extends Area3D


var score = 1


func _ready():

pass


func _on_area_entered(area: Area3D) -> void:

$Label.text = str(score)

score += 1

if score > 6:

get_tree().change_scene_to_file("res://ESCENAS NIVELES/FINALworld_environment.tscn")

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

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

#Explicacion: arrastrar con el mouse desde la carpeta res:   hacia la linea del codigo escrito, para que este bien enrutado, ("res://ESCENAS  NIVELES/FINALworld_environment.tscn") asi correcto, si en lugar escribiese  ("res://FINALworld_environment.tscn") no funcionaria porque el archivo tscn esta en una subcarpeta dentro de la carpeta "res" osea en "res " contiene la carpeta "ESCENAS  NIVELES"

y "ESCENAS  NIVELES" contiene el archivo tscn "FINALworld_environment.tscn"......esta es mi explicacion que la IA no te explica , ahora pondre la explicacion de la IA................Explicación:

  1. extends Area3D:

    • Esta línea indica que el script está adjunto a un nodo de tipo Area3D. Los nodos Area3D se utilizan para detectar colisiones y superposiciones en un espacio 3D.
  2. var score = 1:

    • Se declara una variable llamada score y se inicializa en 1. Esta variable se utilizará para llevar la cuenta de los puntos.
  3. func _ready(): pass:

    • La función _ready() se llama cuando el nodo está listo para ser utilizado. En este caso, no se realiza ninguna acción específica, por lo que se utiliza pass.
  4. func _on_area_entered(area: Area3D) -> void::

    • Esta función se llama automáticamente cuando otro nodo Area3D entra en el área de este nodo.
    • $Label.text = str(score): Esta linea, le dice al objeto label que muestre el valor de la variable score.
    • score += 1: Incrementa la variable score en 1 cada vez que se detecta una colisión.
  5. if score > 6::

    • Se agrega una condición if para verificar si la variable score es mayor que 6.
  6. get_tree().change_scene_to_file("res://FINALworld_environment.tscn"):

    • Si la condición score > 6 se cumple, esta línea de código se ejecuta.
    • get_tree(): Obtiene el árbol de la escena actual.
    • change_scene_to_file("res://FINALworld_environment.tscn"): Carga y cambia a la escena especificada por la ruta "res://FINALworld_environment.tscn". Asegúrate de que esta ruta sea correcta y que la escena exista en tu proyecto.

Cómo usarlo:

  1. Asegúrate de que tienes una escena llamada "FINALworld_environment.tscn" en la raíz de tu proyecto.
  2. Adjunta este script a un nodo Area3D.
  3. Asegúrate de que hay otro nodo Area3D que puede entrar en el área del nodo al que has adjuntado este script.
  4. Crea un nodo de tipo Label, y nombra ese nodo como "Label".
  5. Cuando el otro nodo Area3D entre en el área 6 veces, la escena cambiará a "FINALworld_environment.tscn". 

Y aqui el gdscript facilitado por la IA:

extends Area3D

var score = 1

func _ready():
    pass

func _on_area_entered(area: Area3D) -> void:
    $Label.text = str(score)
    score += 1
    
    if score > 6:
        get_tree().change_scene_to_file("res://FINALworld_environment.tscn")

Sumar puntos con godot 4.3; GDScript;

 extends Area3D


var score = 1


func _ready():


pass



func _on_area_entered(area: Area3D) -> void:


$Label.text = str(score)


score += 1


pass


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

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

Explicacion: tenemos en un juego 3d un Area en el cielo con su colisionador donde tenemos puesto el GDScript, en el nodo Area ponemos el GDScript, en el suelo vamos destruyendo elementos y al subir el premio hacia arriba y tocar el Area que esta por encima va sumando puntuacion, la idea ahora sera hacer que al llegar a una cantidad de puntuacion se active un cambio de nivel, pero ese GDScript lo pondre mas adelante aun e de trabajar en ello.....

GDScript para emitir un sonido al presionar tecla espacio; tambien emite particulas;

 extends CPUParticles3D


# Nombre de la acción en el mapa de entrada que controla las partículas

@export var accion_activar_particulas: String = "ui_accept"

#@export var accion_activar_particulas: String = "mouse_left"


# Referencia al AudioStreamPlayer3D

@onready var audio_player: AudioStreamPlayer3D = $AudioStreamPlayer3D


func _process(delta):

# Verifica si la acción está siendo presionada

if Input.is_action_just_pressed(accion_activar_particulas): #Cambio aqui

# Si la acción está presionada y las partículas no están emitiendo, comienza a emitir

emitting = true

# Reproduce el sonido

audio_player.play()

elif Input.is_action_just_released(accion_activar_particulas):

emitting = false

elif Input.is_action_pressed(accion_activar_particulas):

emitting = true

else:

# Si la acción no está presionada y las partículas están emitiendo, deja de emitir

if emitting:

emitting = false



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.