lunes, 9 de febrero de 2026

Girar un extends MeshInstance2D para Godot 4.6 con GDScript , gira encoge y borra;

 extends MeshInstance2D


@export var velocidad_giro : float = 0.2

var tiempo : float = 0.0

var tiempo_limite : float = 35.0


# Guardamos la escala original para que el cálculo sea preciso

var escala_inicial : Vector2


func _ready():

escala_inicial = scale


func _process(delta):

tiempo += delta

# 1. Giro suave (el que te gusta)

rotation += velocidad_giro * delta

# 2. Encogimiento MUY lento

# Calculamos el progreso del tiempo de 0.0 a 1.0

var progreso = clamp(tiempo / tiempo_limite, 0.0, 1.0)

# Interpolamos la escala: va desde la inicial hasta casi cero (0.05)

# No llegamos a 0 exacto para evitar errores visuales antes de tiempo

scale = escala_inicial.lerp(Vector2(0.05, 0.05), progreso)

# 3. Borrado final

if tiempo >= tiempo_limite:

queue_free()

miércoles, 4 de febrero de 2026

Nuevo juego en html con Godot 4.5; para pc y para telefono movil; en caja en el aro¡¡¡;

 

martes, 3 de febrero de 2026

Juego html echo en una hora, estudiando web html con Godot 4.5.;

 

Estoy experimentando html con godot 4.5 para jugar directamente desde la web, este juego lo hice en 1 hora, y ya tiene mas de 25 visitas y a sumado 1 nuevo seguidor a mi trabajo en itch.io, los temas de adultos tienen muchisimo tiron, lastima que los procesadores de pago no permitan algun veneficio economico minimo , pero en fin, yo estoy mas por aficion al desarrollo que por tema monetario....

domingo, 1 de febrero de 2026

stealing from the history museum; pruebas para html web;

https://perico415.itch.io/stealing-from-the-history-museum/devlog

 dia 1-02 26 estoy haciendo pruebas para html navegador web y de momento solo e conseguido que funcione este archivo que subi hoy la prueba.zip, solo puedes mover el personaje y explorar con la camara el interior de la puerta, pero si no quereis descargar nada, de momento esto es lo que se hacer en html....en las descargas es como los videos mucho mas completado y mucho mas jugable, mejor iluminado y sin graficos que estorpecen el juego........



February 1st, 2026: I'm doing tests for HTML in a web browser, and so far I've only managed to get this file, test.zip, working. You can only move the character and explore the inside of the door with the camera. But if you don't want to download anything, this is what I can do in HTML for now... The downloaded version is like the videos, much more complete and playable, better lit, and without graphics that hinder the gameplay...


viernes, 30 de enero de 2026

Godot y html, prueba mi primera compilacion para jugar desde la web; Un juego de extraterrestres;

 


Este juego si lo descargais esta limpio, y es un juego corto pero completo y gratuito, esta es la primera compilacion para web que ago con Godot y funciona muy bien, en la version para html, salen unas barras en los personajes que no aparecen si  descargais el juego,    solo es una prueba para html y me gusta como salio, antes usaba Unity y me era mas facil en tema html, 2 años e tardado creo en poder publicar algo en html con Godot.....pero la constancia da frutos........


el secreto que empiece en index.html la cabecera de los archivos, que se compriman en zip seleccionandolos todos a la vez....no desde una carpeta...esto es importante y al subirlos a itch.io seleccionar para html y....bueno puedes preguntar a la IA de tu navegador ...asi aprendido yo hacerlo, y no superar los 200mg de peso........es ponerse.

miércoles, 28 de enero de 2026

Devlog; NOVEDADES JUEGO DEL ROBO DEL MUSEO;

https://perico415.itch.io/stealing-from-the-history-museum/devlog/1333944/especially-in-the-second-level-with-the-security-lasers 



28–01-2026

Publico los tres niveles del juego con el tiempo completo en cada uno de ellos, novedades sobre todo en el nivel segundo con los láseres de seguridad, para desactivarlos hay mas dificultad porque hay que disparar a elementos cúbicos que se zarandean por el aire y hace mas dificultoso, pero también mas divertido este nivel, cuando pasas al nivel tercero, para pasar hay que lanzar bombas de mano a la puerta a una distancia prudencial, hay novedades también en este nivel ampliado un poquito los turistas y efecto de flas fotográfico, van arriba y abajo locos perdidos haciendo fotos a lo loco, esta muy verde este tercer nivel, pero yo lo muestro para el  que quiera curiosear…….


AVENTURA



Curioso GDScript de Godot 4.5 que imita un fogonazo de camara fotografica; Para un OmniLight3D;

 extends OmniLight3D


@export var energia_maxima : float = 10.0  # Potencia del flash

@export var tiempo_espera : float = 10.0   # Cada cuánto dispara

@export var velocidad_apagado : float = 5.0 # Suavidad al apagarse


func _ready():

# Ponemos la luz a cero al empezar

light_energy = 0.0

# Iniciamos el bucle de fotos

_hacer_foto()


func _process(delta):

# Si la luz está encendida, que se vaya apagando poco a poco

if light_energy > 0:

light_energy = lerp(light_energy, 0.0, velocidad_apagado * delta)


func _hacer_foto():

while true:

# 1. Esperamos los 10 segundos

await get_tree().create_timer(tiempo_espera).timeout

# 2. ¡DISPARO! Subimos la energía de golpe

light_energy = energia_maxima

print("¡Flash! Foto capturada")

# El código vuelve arriba y espera otros 10 segundos

lunes, 26 de enero de 2026

Dos formas de movimientos aleatorios de un CollisionShape3D;

 extends CollisionShape3D


# --- AJUSTES DE MOVIMIENTO ---

@export var velocidad : float = 5.0

@export var margen_movimiento : Vector3 = Vector3(3.0, 2.0, 3.0) # Cuánto se mueve en X, Y, Z


# --- VARIABLES INTERNAS ---

var posicion_inicial : Vector3

var objetivo : Vector3


func _ready():

posicion_inicial = position

_nuevo_punto_aleatorio()


func _process(delta):

# Movemos el láser hacia el punto objetivo

position = position.move_toward(objetivo, velocidad * delta)

# Si llega al punto, elige otro

if position.distance_to(objetivo) < 0.1:

_nuevo_punto_aleatorio()


func _nuevo_punto_aleatorio():

# Calculamos un punto nuevo que NO se salga del margen

var x_random = randf_range(posicion_inicial.x - margen_movimiento.x, posicion_inicial.x + margen_movimiento.x)

var y_random = randf_range(posicion_inicial.y - margen_movimiento.y, posicion_inicial.y + margen_movimiento.y)

var z_random = randf_range(posicion_inicial.z - margen_movimiento.z, posicion_inicial.z + margen_movimiento.z)

objetivo = Vector3(x_random, y_random, z_random)

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


extends CollisionShape3D

# El rango máximo que se podrá mover desde su posición original
@export var amplitud : float = 89.05 
# La velocidad a la que cambia de posición
@export var rapidez : float = 0.7 

var posicion_original : Vector3

func _ready():
# Guardamos la posición inicial para que no se escape al infinito
posicion_original = position

func _process(delta):
# Creamos un movimiento aleatorio para cada eje
var movimiento = Vector3(
randf_range(-amplitud, amplitud),
randf_range(-amplitud, amplitud),
randf_range(-amplitud, amplitud)
)
# Aplicamos el movimiento suavizado con lerp para que no sea un teletransporte brusco
position = position.lerp(posicion_original + movimiento, rapidez * delta)



domingo, 25 de enero de 2026

GDScript otro ejemplo de varias camaras en Godot 4.5 3d;

 extends Node


# Variables para guardar las cámaras

var Camera3Dparediz : Camera3D

var Camera3Dparediz2 : Camera3D

var Camera3Dladron : Camera3D


func _ready():

# 1. LOCALIZAMOS LOS NODOS (Tus rutas perfectas)

Camera3Dparediz= $"Camera3Dparediz"

Camera3Dparediz2= $"Camera3Dparediz2"

Camera3Dladron= $"../CHARACTERBODY/MeshInstance3D2/Camera3Dladron"



# 2. LIMPIEZA INICIAL (Apagamos todo menos la primera)

if Camera3Dparediz2: Camera3Dparediz2.current = false

if Camera3Dparediz: Camera3Dparediz.current = false

if Camera3Dladron: Camera3Dladron.current = true

# 3. PRIMER ACTO: JAPONÉS 1

if Camera3Dparediz:

Camera3Dparediz.current = true

print("--- 1. JAPONÉS 1 ACTIVO (10s) ---")

await get_tree().create_timer(5.0).timeout

if Camera3Dparediz: Camera3Dparediz.current = false # Apagamos Japones 1

if Camera3Dparediz2:

Camera3Dparediz2.current = true

print("--- 2. GRÚA ACTIVA (20s) ---")

await get_tree().create_timer(10.0).timeout

if Camera3Dladron:

Camera3Dladron.current = true

print("--- 1. JAPONÉS 1 ACTIVO (10s) ---")

await get_tree().create_timer(15.0).timeout

Nuevo Devlog; avances para Stealing from the history museum;

 I'm continuing to work on my game, Stealing from the History Museum, by perico415. This is a preview for Windows and Linux. I'm only posting about 22 seconds of the first level and another 22 seconds of the second, because what I'm really interested in is showing the work on the third level so you can see my progress with the camera controls. I really like movies and I've achieved a cinematic feel to the game... It's January now, and I'm already saying I'll dedicate a year to the game. It's possible I'll go beyond the 8 or 10 levels I was planning and make 12 or more.

A brief summary of what I've done so far:

Level 1 - The thief fights living paintings

Level 2 - The thief has to destroy some laser lights

Level 3 - The thief has to get past many people blocking his path in a room... (in development...)



Sigo avanzando mi juego Stealing from the history museum. by perico415  un avance para windows y linux, solo pongo unos 22 segundos del primer nivel y otros 22  del segundo nivel , por que lo que me interesa es mostrar  el estudio del tercer nivel para que veáis mis avances con el juego de las cámaras, me gusta mucho el cine y e conseguido un manejo cinematográfico del juego….estamos en enero,,,ya voy comentando que le dedicare 1 año al juego, es posible que supere los 8 o 10 niveles que pensaba darle y aga unos 12 o mas, 

Un breve resumen de lo echo asta ahora.

Nivel 1- el ladrón se pelea con cuadros vivientes-

Nivel 2- el ladrón a de destruir unas luces láser-

Nivel 3- el ladrón a de sortear mucha gente que le estorba el paso en una sala…...(en desarrollo...)

https://perico415.itch.io/stealing-from-the-history-museum/devlog/1328869/level-3-the-thief-has-to-get-past-many-people-blocking-his-path-in-a-room-in-development



captura de pantalla, me encanta este aire profesional de las versiones,,0.0.1   ..... 0.0.2    .... 0.0.3 ....    0.0.4 .....    etc... etc queda genial.


captura de pantalla, me encanta este aire profesional de las versiones,,0.0.1   ..... 0.0.2    .... 0.0.3 ....    0.0.4 .....    etc... etc queda genial.


sábado, 24 de enero de 2026

Muy buen GDScript para jugar con 3 y 4 camaras;

 extends Node


# Variables para guardar las cámaras

var camara_japones : Camera3D

var camara_grua : Camera3D

var camara_japones2 : Camera3D

var camara_ladron : Camera3D


func _ready():

# 1. LOCALIZAMOS LOS NODOS (Tus rutas perfectas)

camara_japones = $"WorldEnvironment/guia de turista 2 limpio NO TOCAR3/Camera3Djapones"

camara_grua = $"WorldEnvironment/GRUACAMARA/Camera3Dgrua"

camara_japones2 = $"WorldEnvironment/guia de turista 2 limpio NO TOCAR2/Camera3Djapones2"

camara_ladron = $"WorldEnvironment/CHARACTERBODY/MeshInstance3D2/Camera3Dladron"


# 2. LIMPIEZA INICIAL (Apagamos todo menos la primera)

if camara_grua: camara_grua.current = false

if camara_japones2: camara_japones2.current = false

if camara_ladron: camara_ladron.current = false

# 3. PRIMER ACTO: JAPONÉS 1

if camara_japones:

camara_japones.current = true

print("--- 1. JAPONÉS 1 ACTIVO (10s) ---")

await get_tree().create_timer(5.0).timeout

# 4. SEGUNDO ACTO: LA GRÚA

if camara_japones: camara_japones.current = false # Apagamos Japones 1

if camara_grua:

camara_grua.current = true

print("--- 2. GRÚA ACTIVA (20s) ---")

await get_tree().create_timer(10.0).timeout

# 5. TERCER ACTO: JAPONÉS 2

if camara_grua: camara_grua.current = false # Apagamos Grúa

if camara_japones2:

camara_japones2.current = true

print("--- 3. JAPONÉS 2 ACTIVO (30s) ---")

await get_tree().create_timer(15.0).timeout

# 6. ACTO FINAL: EL LADRÓN (Toma el control)

if camara_japones2: camara_japones2.current = false # Apagamos Japones 2

if camara_ladron:

camara_ladron.current = true

print("--- FINAL: LADRÓN ACTIVO. ¡A JUGAR! ---")


jueves, 22 de enero de 2026

Resumen de lo conseguido trabajado asta ahora de mi juego Stealing from the history museum. by perico415;

 


Resumen de lo conseguido trabajado asta ahora de mi juego Stealing from the history museum. by perico415


Primer nivel, El personaje el ladrón aparece en una ventana, a subido a una sala del museo y tiene la capacidad de colocar explosivos, lanzar explosivos y disparar, revienta una puerta colocando una bomba por temporizador, ojo has de apartarte, puedes morir con tu propio explosivo,



consigues entrar en la sala y hay una serie de cuadros, dos de ellos son intrigantes, te acercas a ellos y surgen una especie como de fantasmas que te persiguen, si te tocan mueres y has de reiniciar ese nivel, al morir salen escenas de muerte, y buelbe a empezar el nivel, si disparas a los fantasmas estos se convierten en humo, cuando aparecen hay una cámara que los enfoca en exclusiva a ellos unos instantes, tu por tu cuenta puedes mover la cámara por el juego como te de la gana, rotar alrededor del personaje acercarte alejarte, una pasada vamos..


Cuando los destruyes se habré una entrada a otra sala, en esta hay unos láseres que recorren la sala de un punto a otro si te toca una luz también mueres y se reinicia el juego desde ese punto desde esa misma sala, has de disparar a unos interruptores que apagan esos láseres, Entonces vas a la tercera sala o nivel escena en esta estoy empezando a poner personajes , turistas japoneses en esa sala pero docenas de ellos que están buscando, fotografiando, paseando, incordiando, molestando al ladrón…….y asta hay lo que estoy trabajando...continuara...


GDScript para mover un extends MeshInstance3D en forma de ir y retornar;

 extends MeshInstance3D


# --- VALORES AJUSTABLES ---

@export var velocidad : float = 0.2      # Qué tan rápido camina

@export var ancho_ovalo : float = 0.3   # Distancia hacia los lados (Eje X)

@export var largo_ovalo : float = 5.0   # Distancia adelante y atrás (Eje Z)


var tiempo : float = 0.0


func _process(delta):

# El tiempo va corriendo...

tiempo += delta * velocidad

# Calculamos la nueva posición usando Seno y Coseno

# El Coseno hace el movimiento de adelante/atrás (Z)

# El Seno hace el movimiento de izquierda/derecha (X)

var nueva_x = sin(tiempo) * ancho_ovalo

var nueva_z = cos(tiempo) * largo_ovalo

# Aplicamos la posición

global_position = Vector3(nueva_x, global_position.y, nueva_z)

# --- ESTO HACE QUE EL PERSONAJE MIRE HACIA DONDE CAMINA ---

# Calculamos hacia dónde irá en el siguiente fotograma para rotarlo

var objetivo_mirada = Vector3(sin(tiempo + 0.1) * ancho_ovalo, global_position.y, cos(tiempo + 0.1) * largo_ovalo)

look_at(objetivo_mirada, Vector3.UP)





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

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

Explicacion: en un nivel de mi nuevo juego   https://perico415.itch.io/stealing-from-the-history-museum

quiero poner unos turistas japoneses dando vueltas por una sala , van vienen, el MeshInstance3D es el padre donde alojara el hijo, el personaje en 3d en formato fbx, con animacion de Mixamo de caminar.....




Depurador;


 

Depurador; últimamente estoy indagando en este tema cuando desarrollo mi ultimo juego, al que pienso dedicarle 1 año de trabajo, cuando pruebo el juego veo que sale una zona del motor de juegos de Godot 4.5 llamada depurador donde salen una serie de errores, llegue a tener 400 y con ayuda de la IA los baje a unos 20, si voy hacer mi primer videojuego mas largo de lo que ago habitualmente ya me quiero preocupar de aspectos que nunca toco.


Según consulte a la IA si voy acumulando errores y no miro de solucionarlos, llegara un punto que mi juego puede colapsar o romperse, dejar de ser jugable vamos pararse.


Así que de tanto en tanto le consulto, y me ayuda un montón, los errores de color amarillo no son peligrosos pero los miro de arreglar igual porque son los mas fáciles de solucionar, según la IA y acierta en la solución, la mayoría son errores de programación del GDScript al cual le falta algún guion delante de alguna palabra del código, por ejemplo escribo la palabra “delta” en una linea del código y este funciona no impide que se ejecute el juego, pero lo correcto es escribir “_delta”,, va un guion delante,

Ago la corrección y ejecuto el juego y ….solucionado, Luego están los errores que salen en color de rojo en el motor de juegos de Godot 4.5, estos son un pelin mas complicados de solucionar, así que copio lo que dice ese error y se lo paso a la IA y procuro solucionarlo, algunos son complicados de buscar y solucionar pero los mas generales y numerosos se suelen arreglar gracias a la IA, .


Según le consulte sobre los juegos profesionales que están en el mercado, todos tienen miles de errores de depuración, errores de programación y de otros asuntos, pero si el videojuego corre y no se para y puedes resolverlo asta el final, pues esa es la tarea importante y final.


Conclusión, ir trabajando mi juego e ir depurando limpiando de tanto en tanto lo mejor que sea capaz , pero sin obsesionarme , si el juego corre y se puede llegar asta darle un final…...tengo mi juego terminado



sábado, 17 de enero de 2026

Godot 4.5 estudiando nuevo proyecto-17-parte;

Okay, I'm uploading the first level of the game for free download, along with my work so far on the second level. I put the first level up for sale, but it's too early to sell anything, so I'm making it free. When I start accumulating more work and the game generates interest, I hope someone will start making a few dollars... but I know it's very, very early still...

Summary of the work so far... The game starts with a thief who sneaks in through a window and plants a bomb to destroy a door. He has to retreat, or the bomb will kill him. Once he gets inside the room, he explores the surroundings a bit. Two characters from painted pictures come to life and attack the thief, who loses a life. You have to shoot the apparitions to destroy them. Then a passage opens to the next room. Security lasers destroy the thief if they touch him. You have to shoot some mechanisms to deactivate them... and this is the level I'm currently working on...


Bueno subo para descargar de forma gratuita el 1 nivel del juego y el trabajo asta la fecha del 2 nivel del juego, puse en venta el primer nivel pero es muy pronto para vender nada, así que lo pongo gratis y cuando empiece haber mas trabajo acumulado y generar interés el juego espero alguien empiece a ingresar algún dólar ….pero se que es muy muy pronto todavía…….

Resumen de lo trabajado….empieza el juego con el ladrón que se cuela por una ventana, coloca una bomba para destruir una puerta, se a de retirar si no la bomba lo mato a el, una vez consigue entrar en la sala explora un poco el entorno, dos personajes de  cuadros pintados cobran vida y atacan de alguna forma al ladrón que pierde su vida, has de disparar a las apariciones para destruirlas, entonces se abre un paso para la siguiente sala, unos láseres de seguridad destruyen aniquilan al ladrón si le tocan, has de disparar unos mecanismos para desactivarlos…..y este nivel es el que estoy trabajando actualmente….


jueves, 15 de enero de 2026

A POR NIVEL 2 DE Stealing from the history museum.;

Empezando pruebas del segundo nivel del juego, jugando con laser de seguridad y desactibandolo con disparos.....


16-1-26

Bueno subo para descargar de forma gratuita el 1 nivel del juego y el trabajo asta la fecha del 2 nivel del juego, puse en venta el primer nivel pero es muy pronto para vender nada, así que lo pongo gratis y cuando empiece haber mas trabajo acumulado y generar interés el juego espero alguien empiece a ingresar algún dólar ….pero se que es muy muy pronto todavía…….

Resumen de lo trabajado….empieza el juego con el ladrón que se cuela por una ventana, coloca una bomba para destruir una puerta, se a de retirar si no la bomba lo mato a el, una vez consigue entrar en la sala explora un poco el entorno, dos personajes de  cuadros pintados cobran vida y atacan de alguna forma al ladrón que pierde su vida, has de disparar a las apariciones para destruirlas, entonces se abre un paso para la siguiente sala, unos láseres de seguridad destruyen aniquilan al ladrón si le tocan, has de disparar unos mecanismos para desactivarlos…..y este nivel es el que estoy trabajando actualmente….

Okay, I'm uploading the first level of the game for free download, along with my work so far on the second level. I put the first level up for sale, but it's too early to sell anything, so I'm making it free. When I start accumulating more work and the game generates interest, I hope someone will start making a few dollars... but I know it's very, very early still...

Summary of the work so far... The game starts with a thief who sneaks in through a window and plants a bomb to destroy a door. He has to retreat, or the bomb will kill him. Once he gets inside the room, he explores the surroundings a bit. Two characters from painted pictures come to life and attack the thief, who loses a life. You have to shoot the apparitions to destroy them. Then a passage opens to the next room. Security lasers destroy the thief if they touch him. You have to shoot some mechanisms to deactivate them... and this is the level I'm currently working on...


 

domingo, 11 de enero de 2026

Stealing from the history museum.;

 https://perico415.itch.io/stealing-from-the-history-museum







Well, I'm finishing the first stage of the game, the beginning, and this download is available for purchase. Previous free builds are already available, as always, for Windows and Linux. There are still a few details to work out, but now I'll focus on the second part of the game. The first demos and tests will be free, and I plan to develop the game over the course of a year. I know I won't sell any of these first-level versions, but once the second part is finished, I know I'll sell some of the first. I'm confident that everything depends on hard work and perseverance...


Bueno doy por finalizada la primera etapa del juego, el inicio, y esta descarga esta a la venta, ya hay compilaciones anteriores gratuitas, como siempre para windows y para linux, aun faltan algunos detalles, pero ahora ya me centrare en la segunda parte del juego, que serán gratuitas las primeras demos y pruebas, y mantengo la idea de hacer un juego durante 1 año, se que no venderé nada de estas versiones del primer nivel, pero cuando este trabajada la segunda parte, si se que se venderá algo de la primera, confió en que todo se basa en el trabajo y la constancia……...