Desarrollo creacion videojuegos.Godot, Unity, Blender,Gimp,Game Maker,
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.
sábado, 16 de mayo de 2026
miércoles, 13 de mayo de 2026
GDScript para cambiar de escena; uso del inspector para elegir cualquier escena;
extends Area3D
# Aquí arrastras la escena (.tscn) desde el Inspector
@export var escena_nueva: PackedScene
func _on_area_entered(area: Area3D) -> void:
# Verificamos que lo que entra es otra Area3D (puedes filtrar por nombre si quieres)
if escena_nueva:
# Cambia la escena actual por la nueva
get_tree().change_scene_to_packed(escena_nueva)
else:
print("Paco, acuérdate de arrastrar la escena al Inspector")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Explicacion: Con este GDScript puedes elegir cualquier escena que tengas echa y arrastrandola al inspector cuando algo toque el colisionador de esa Area3d, te ara el cambio a la nueva escena deseada.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Te gusto mi articulo?¡¡¡ apoyame con un cafe!!!
Mi amiga la IA y yo el desarrollador indie, manteniendo una charla de trabajo;
domingo, 10 de mayo de 2026
GDScript para enlazar varias animaciones para Godot 4.6.2;
extends Node3D
# @export para ajustar qué tan "fuerte" afecta el slider desde el Inspector
@export var multiplicador_suavidad: float = 1.0
var lista_animaciones = [
"Game_engineHOMBRE|Game_engineHOMBREAction",
"Game_engineHOMBRE|Game_engineMUJERAction",
"Game_engineMUJER|Game_engineHOMBREAction",
"Game_engineMUJER|Game_engineMUJERAction"
]
var indice = 0
func _ready() -> void:
# 1. Conectamos señales
$AnimationPlayer.animation_finished.connect(_al_terminar_animacion)
$Node/CanvasLayer/HSlider.value_changed.connect(_on_slider_speed_changed)
# 2. Ajuste inicial de velocidad y sonido
var valor_inicial = $Node/CanvasLayer/HSlider.value * multiplicador_suavidad
$AnimationPlayer.speed_scale = valor_inicial
# Si el sonido está en esta ruta, lo ajustamos al arrancar
if has_node("Node/CanvasLayer/AudioStreamPlayer3D"):
$Node/CanvasLayer/AudioStreamPlayer3D.pitch_scale = valor_inicial
$Node/CanvasLayer/AudioStreamPlayer3D.play()
reproducir_siguiente()
func reproducir_siguiente():
if indice < lista_animaciones.size():
$AnimationPlayer.play(lista_animaciones[indice])
indice += 1
else:
indice = 0
reproducir_siguiente()
func _al_terminar_animacion(nombre_anim):
reproducir_siguiente()
func _on_slider_speed_changed(valor: float):
var nueva_velocidad = valor * multiplicador_suavidad
# Cambia la velocidad de la animación
$AnimationPlayer.speed_scale = nueva_velocidad
# Cambia el tono/velocidad del sonido
if has_node("Node/CanvasLayer/AudioStreamPlayer3D"):
$AudioStreamPlayer3D.pitch_scale = nueva_velocidad
func _input(event):
if event.is_action_pressed("ui_cancel"):
get_tree().quit()
viernes, 8 de mayo de 2026
devlog dia 08-05-2026;
https://perico415.itch.io/stealing-from-the-history-museum/devlog/1518068/outlining-the-final-level
¡Hola! Soy perico415. Soy desarrollador de videojuegos indie con Godot, dibujante de cómics y creador de contenido. Aquí comparto mis avances en programación, mis dibujos y mis efectos de sonido. Si te gusta lo que hago en mi blog o en YouTube, ¡puedes apoyarme invitándome a un café! ¡Gracias!
Te gusta mi contenido, apoyame, pagando un cafe, gracias¡¡¡
If you like my content, support me by buying me a coffee, thank you!
martes, 28 de abril de 2026
Magnifico GDScript para instanciar murcielagos desde un Area3d y calibrar desde el inspector;
Te gusta mi blog, invitame a un cafe aqui:
extends Area3D
# --- CONFIGURACIÓN DESDE EL INSPECTOR ---
@export_group("Recursos")
## Arrastra aquí tu archivo .tscn (el murciélago o cualquier otro)
@export var escena_a_instanciar : PackedScene
@export_group("Tiempos de Spawner")
## Cada cuántos segundos aparece uno nuevo
@export var tiempo_entre_instancias : float = 2.0
@export_group("Movimiento Aleatorio")
## Velocidad mínima y máxima en cada eje (X, Y, Z)
@export var velocidad_x : Vector2 = Vector2(-2.0, 2.0)
@export var velocidad_y : Vector2 = Vector2(-0.5, 1.5)
@export var velocidad_z : Vector2 = Vector2(-2.0, 2.0)
@export_group("Limpieza y Optimización")
## Segundos que vivirá el objeto antes de borrarse (0 = infinito)
@export var tiempo_de_vida : float = 10.0
## Distancia máxima desde el spawner antes de borrarse (0 = sin límite)
@export var distancia_maxima : float = 50.0
var timer : float = 0.0
func _process(delta):
timer += delta
if timer >= tiempo_entre_instancias:
instanciar_criatura()
timer = 0.0
func instanciar_criatura():
if escena_a_instanciar == null:
return
# 1. Creamos la instancia
var nueva_instancia = escena_a_instanciar.instantiate()
# 2. La añadimos a la escena
get_tree().current_scene.add_child(nueva_instancia)
# 3. Posición inicial
nueva_instancia.global_position = global_position
# 4. Calculamos su velocidad aleatoria
var vel_random = Vector3(
randf_range(velocidad_x.x, velocidad_x.y),
randf_range(velocidad_y.x, velocidad_y.y),
randf_range(velocidad_z.x, velocidad_z.y)
)
# 5. Inyectamos la lógica de movimiento y auto-destrucción
var mover_script = GDScript.new()
mover_script.set_source_code("""
extends Node3D
var velocidad = Vector3.ZERO
var pos_inicio = Vector3.ZERO
var max_dist = 0.0
var vida_timer = 0.0
var max_vida = 0.0
func _process(delta):
# Movimiento
global_translate(velocidad * delta)
# Control por Tiempo
if max_vida > 0:
vida_timer += delta
if vida_timer >= max_vida:
queue_free()
# Control por Distancia
if max_dist > 0:
if global_position.distance_to(pos_inicio) >= max_dist:
queue_free()
""")
mover_script.reload()
nueva_instancia.set_script(mover_script)
# Pasamos las variables del Inspector a la instancia recién creada
nueva_instancia.velocidad = vel_random
nueva_instancia.pos_inicio = global_position
nueva_instancia.max_dist = distancia_maxima
nueva_instancia.max_vida = tiempo_de_vida
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
Explicacion: busco unos murcielagos que salen desde el interior de una calavera, se instancien , se crean con este GDScript desde un Area3d, y con el sistema de @export , se consigue desde el inspector del motor de juegos de Godot 4.6.2 alterar, la velocidad de las instancias, la velocidad de su movimiento por el escenario del juego , el tiempo de vida......magnifica utilizacion de la IA, hay quien dice que asi no se aprende a programar, pero yo no quiero programar, yo quiero desarrollar un videojuego, de todas formas algo si que se aprende, yo desconocia las maravillas del @export, ademas con este GDScript puedes arrastrar al inspector la escena tscn que quieras instanciar sin tocar nada de codigo.
Es un poderoso GDScript.
Te gusta mi blog, invitame a un cafe aqui: