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