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...