Godot, scripts para Godot estudios y aprendizajes, Creacion de videojuegos. Creacion y publicacion de videojuegos en internet. Como hacer videojuegos. C# unity. Animaciones unity blender. Personajes videojuegos graficos dibujos. Diseño grafico. Comic. Animaciones gif. Dibujo de retratos. Realidad virtual. Cine y realidad virtual.
jueves, 27 de febrero de 2025
Videojuego + 18 años realizado con Godot 4.3.Diving with erotic surprises.
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:
-
extends Area3D
:- Esta línea indica que el script está adjunto a un nodo de tipo
Area3D
. Los nodosArea3D
se utilizan para detectar colisiones y superposiciones en un espacio 3D.
- Esta línea indica que el script está adjunto a un nodo de tipo
-
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.
- Se declara una variable llamada
-
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 utilizapass
.
- La función
-
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 variablescore
en 1 cada vez que se detecta una colisión.
- Esta función se llama automáticamente cuando otro nodo
-
if score > 6:
:- Se agrega una condición
if
para verificar si la variablescore
es mayor que 6.
- Se agrega una condición
-
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.
- Si la condición
Cómo usarlo:
- Asegúrate de que tienes una escena llamada "FINALworld_environment.tscn" en la raíz de tu proyecto.
- Adjunta este script a un nodo
Area3D
. - Asegúrate de que hay otro nodo
Area3D
que puede entrar en el área del nodo al que has adjuntado este script. - Crea un nodo de tipo Label, y nombra ese nodo como "Label".
- Cuando el otro nodo
Area3D
entre en el área 6 veces, la escena cambiará a "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.
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.