lunes, 29 de diciembre de 2025

Stealing from the history museum.mejoras dia 29-12-25;

 


jueves, 25 de diciembre de 2025

Godot 4.5 estudiando nuevo proyecto-11-parte;

Sigo trabajando el juego del robo en el museo, le puesto un corazon al Ladron protagonista del juego que ba menguando conforme se encuentra con dificultades en su labor, y tambien unos cambios de escenas y un reinicio de la principal , al final del pasillo comenzara otro nuevo nivel escena, y al comenzar al principio del juego presionando “b” se coloca una bomba…




.I'm still working on the museum heist game. I've added a heart to the protagonist thief that diminishes as he encounters difficulties in his task, and also some scene changes and a main scene restart. At the end of the corridor, another new level/scene will begin, and when starting at the beginning of the game, pressing "b" places a bomb...

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


26-12-25

miércoles, 24 de diciembre de 2025

GDScript godot 4.5 cambia una escena por tiempo y anima la actual;

 extends Node3D


# Variable para llevar la cuenta del tiempo

var tiempo_transcurrido: float = 0.0


func _ready() -> void:

$AnimationPlayer.play("MakeHuman default skeleton|MakeHuman default skeletonAction")

func _process(delta: float) -> void:

# Sumamos el tiempo de cada frame a nuestro contador

tiempo_transcurrido += delta

# Si el contador llega a 4 segundos, cambiamos de escena

if tiempo_transcurrido >= 4.0:

get_tree().change_scene_to_file("res://LADRON/LADRONMUERTE/ladron_yo_animo_dia_24_12_27_cala_bera.tscn")

# Verificamos si se presiona la tecla Escape para salir

if Input.is_key_pressed(KEY_ESCAPE):

get_tree().quit()


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

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

Explicacion: GDScript que anima continuamente un personaje y al transcurrir unos segundos cambia la escena, tambien se puede salir del juego presionando escape ESC

miércoles, 17 de diciembre de 2025

BORRAR AREA3D DE GODOT EN 5 SEGUNDOS CON GDSCRIPT;

 extends Area3D


func _ready() -> void:

# Espera 5 segundos y luego ejecuta queue_free()

get_tree().create_timer(5.0).timeout.connect(queue_free)

domingo, 14 de diciembre de 2025

Stealing from the history museum. 14-12-25;


 https://perico415.itch.io/

GDScript instanciando por entrar en una area3d , con retraso de 6 segundos;

 extends Area3D


# Carga la escena de la bola para poder instanciarla.

var bola_proyectada_scene = preload("res://EL DEL CUADRO QUE GRITA/character_body_3d_enemigo_cubo7-12-25.tscn")


# 0: Esperando colisión inicial

# 1: Colisión detectada, contando tiempo

# 2: Instanciación completada

var estado_instanciacion: int = 0


# Contador de tiempo, para acumular los segundos.

var tiempo_acumulado: float = 0.0


# Constante que define el retardo deseado: ¡AHORA 6 SEGUNDOS!

const TIEMPO_ESPERA: float = 6.0



# Esta función se llama automáticamente cuando otro Area3D entra en este Area3D.

# (Debes haber conectado la señal 'area_entered').

func _on_area_entered(area: Area3D) -> void:

# 1. Comprobar que el retardo no se haya iniciado ya.

if estado_instanciacion == 0:

print("Área tocada. Iniciando cuenta atrás de ", TIEMPO_ESPERA, " segundos para instanciar bola...")

estado_instanciacion = 1 # Cambiamos el estado para empezar a contar.

# 2. OPCIONAL: Comprobar si el Area que ha entrado es un área específica.

# if area.name != "Area_del_jugador":

# return



# Esta función se llama en cada frame del juego.

func _process(delta: float) -> void:

# Comprobar si estamos en el estado de conteo (1).

if estado_instanciacion == 1:

# Acumular el tiempo transcurrido desde el último frame.

tiempo_acumulado += delta

# Comprobar si se ha alcanzado el tiempo de espera (6.0 segundos).

if tiempo_acumulado >= TIEMPO_ESPERA:

# ¡Tiempo cumplido! Instanciar y cambiar el estado.

instanciar_bola()

estado_instanciacion = 2 # Marcamos como completado.

# Detenemos el _process, ya que la tarea ha terminado.

set_process(false)



func instanciar_bola() -> void:

print("¡6 segundos cumplidos! Instanciando bola proyectada.")

# Instancia la escena pre-cargada.

var nueva_bola = bola_proyectada_scene.instantiate()

# Asigna la posición de la nueva instancia a la del nodo actual.

nueva_bola.global_position = self.global_position


# Añade la instancia como hijo del nodo padre.

get_parent().add_child(nueva_bola)

# --- FIN DEL SCRIPT ---

sábado, 13 de diciembre de 2025

Nueva compilacion para windows y linux, La imitacion de Monalisa se sale¡¡¡¡ esta que se sale¡¡¡¡;

 Nueva compilacion para windows y linux, La imitacion de Monalisa se sale¡¡¡¡ esta que se sale¡¡¡¡ Creo ire poniendo por fechas todo lo nuevo, asi los jugadores tendran un orden logico de las mejoras y ampliaciones que boy a ir añadiendo......​

​New build for Windows and Linux! The Mona Lisa imitation is amazing! It's fantastic! I think I'll be posting all the new features by date, so players will have a logical order of the improvements and expansions I'll be adding...​



lunes, 8 de diciembre de 2025

Stealing from the history museum.;


 

https://perico415.itch.io/

jueves, 4 de diciembre de 2025

domingo, 30 de noviembre de 2025

Demo del juego del robo que boy a trabajar durante un año!;

 

viernes, 28 de noviembre de 2025

Godot 4.5 estudiando nuevo proyecto-3-parte; video de yutube, comento;

comento el nuevo video de yutube de mi primer proyecto para Steam que pienso dedicarle 1 año, estudiando movimientos de personaje, estudiando cambios de escenas, estudiando algo el sonido y la luz y ocurrencias con toque humoristico,  cadencias de memoria con tema lanzar granadas de mano, e de corregirlo, el tema de disparos funciona fluido........la iluminacion quiero conserbar ese ambiente.......en fin solo es trabajo y tiempo.

 

domingo, 23 de noviembre de 2025

Godot 4.5 estudiando nuevo proyecto-2-parte;

 

Estoy con nuevo proyecto realizándolo con Godot 4.5, este es muy ambicioso porque quiero publicar mi primer juego en Steam, y no lo voy a realizar en 2 meses, creo me atreveré a publicarlo de aquí 6 meses a 1 año, e comprado un mouse mas preciso para trabajar el juego, de estos de Gamer y bueno se nota la diferencia, mas precisión y mas seguridad manejando con el.


En el juego utilizo muchísimo la cámara, permitiendo infinidad de ángulos y de distancias, el jugador tendrá todas sus preferencias cubiertas en ese aspecto.


En este video estoy empezando a trabajar el juego y probando el mouse.


El argumento trata sobre un robo en un museo.


Las animaciones las descargo y las combino lo mejor que se alludandome de la IA y sus gdscripts para hacer funcionar al personaje.


La ambientación sera toda de oscuridad y de misterio, una iluminación estilo series de televisión CSI, al menos en eso me inspiro.


Iré publicando avances en yutube y en mi blog, ahora no tengo ninguna prisa, antes hacia un juego cada mes o dos meses y los publicaba en Itch.io, con temas de erotismo, porque algún dólar caía por ventas y hacia ilusión ganar algo, pero con la censura actual eso se a echo imposible, así que voy a ir en plan de autentico profesional, y voy hacer un juego que publicare en Steam y del cual pienso recuperar los 100$ que cuesta publicar alli mas las ganancias, otros 100$ me atrevo a asegurar que conseguire ganar.


Y estoy completamente seguro que lo voy a conseguir, jamas podre vivir de esto, pero algun pellizco, o trozo del pastel si que lo boy a sacar.


Es mas el goze de tener una ilusion, una aficion, algo que me llena y me desconecta de la monotonia de mi abitual trabajo del que si me gano el pan.

domingo, 16 de noviembre de 2025

GDSCRIPT SOLO DISPARA DE 1 EN 1 AL EMPEZAR A PRESIONAR TECLA; GODOT 4.5;

 extends Area3D


var Bullet = preload("res://PROTAGONISTA/area_3dPROLLECTIL RIFLE.tscn")


# --- Variables de control para el cooldown ---

var right_mouse_fire_cooldown: float = 0.4

var can_fire_right_mouse: bool = true


# --- Nodos Timer ---

var right_mouse_timer: Timer


# --- Referencia al nodo del modelo 3D (para la rotación) ---

var player_mesh: MeshInstance3D



func _ready() -> void:

# --- Inicialización del temporizador para el Botón Derecho ---

right_mouse_timer = Timer.new()

add_child(right_mouse_timer)

right_mouse_timer.wait_time = right_mouse_fire_cooldown

right_mouse_timer.one_shot = true

# Al terminar el tiempo, volvemos a permitir el disparo

right_mouse_timer.timeout.connect(func(): can_fire_right_mouse = true)


# --- OBTENER REFERENCIA al nodo MeshInstance3D ---

player_mesh = get_node("MeshInstance3D")



func _input(event: InputEvent) -> void:

if event is InputEventMouseButton:

# 🎯 CAMBIO CLAVE: Disparo al EMPEZAR a presionar 🔫

# Verificamos si es el botón derecho Y SI ESTÁ presionado (event.is_pressed())

if event.button_index == MOUSE_BUTTON_RIGHT and event.is_pressed(): 

if can_fire_right_mouse:

can_fire_right_mouse = false

instantiate_bullet()

right_mouse_timer.start()


# NOTA: La liberación del botón ahora no hace nada porque no hay código que la compruebe.



func _process(delta: float) -> void:

# --- LÓGICA de rotación (Se mantiene aquí) ---

if player_mesh:

if Input.is_key_pressed(KEY_Z):

player_mesh.rotate_object_local(Vector3.FORWARD, 1.0 * delta)

if Input.is_key_pressed(KEY_X):

player_mesh.rotate_object_local(Vector3.FORWARD, -1.0 * delta)



# --- Función unificada para instanciar la bala ---

func instantiate_bullet() -> void:

var bullet = Bullet.instantiate()

add_child(bullet)

GDScript para proyectil continuo;; Godot 4.5;

 extends Area3D


var speed: float = 31.0 # Velocidad de la bala (Unidades por segundo)

var tiempo_transcurrido: float = 0.0 # Tiempo en segundos


# El tiempo de vida de la bala es de 80.8 segundos (mucho, pero lo mantenemos por tu configuración)

const LIFESPAN: float = 80.8 



func _ready() -> void:

# La bala ya debe estar orientada en la dirección de disparo

pass


func _process(delta: float) -> void:

# 1. ACTUALIZAR EL TIEMPO

tiempo_transcurrido += delta


# 2. MOVER EL PROYECTIL HACIA ADELANTE (Movimiento Recto y Limpio)

# Usamos translate() para mover el proyectil en su eje local Z (hacia adelante).

# Como no hay ninguna rotación aplicada, mantendrá el rumbo recto.

translate(Vector3(0, 0, speed * delta))


# 3. CONDICIÓN DE DESTRUCCIÓN

if tiempo_transcurrido >= LIFESPAN:

queue_free()


# --- PARTES ELIMINADAS ---

# Se ha eliminado todo el código de 'desired_sweep_angle', 'sin', y 'rotation = current_rotation'

# que causaba el movimiento de barrido lateral.

PASANDO PERSONAJE DE BLENDER 4.4.3. A GODOT 4.5.;


 

AGREGANDO LINTERNA A PERSONAJE EN BLENDER 4.4.3.;

Control + "p"