enne2
2e2c5bbdf6
feat: add LPC-style rat assets, sprite generation scripts, and grid extraction tools
2026-06-27 16:29:46 +02:00
enne2
5f2d09fef4
Fix rat animations and restore map tiles
2026-06-27 15:15:56 +02:00
John Doe
bdf5a8d474
Add new start animation asset for game launch
2026-05-22 18:58:09 +02:00
John Doe
ac80210ba5
Add guide button to quit game in start menu keybindings
2026-05-09 13:32:57 +02:00
John Doe
d9d7a4ac82
Update keybindings and enhance loading screen functionality
...
- Refactor keybindings for gas spawning across multiple configurations
- Implement new loading screen updates during game initialization
- Add tests to ensure all weapon actions are exposed in keybinding profiles
- Introduce new assets for explosion effects
2026-05-09 13:29:32 +02:00
John Doe
310dc0dca9
Add DAT finale flow, editor, and new soundtrack assets
2026-05-09 12:03:17 +02:00
John Doe
f0d056e7f0
Make muOS launcher prefer local venv
2026-05-08 19:45:25 +02:00
John Doe
d32d2cd79c
Refine start menu difficulty and preview workflow
2026-05-08 18:26:55 +02:00
John Doe
f1770b218c
Add animated start menu and level music config
2026-05-07 23:18:39 +02:00
John Doe
2367f4fb1c
Add menu audio controls and menu music
2026-05-07 20:35:15 +02:00
John Doe
a908b50019
Add looping gameplay music
2026-05-07 20:03:20 +02:00
John Doe
5233294b26
Detect muOS board for keybindings
2026-05-07 19:38:05 +02:00
John Doe
486fea38e7
Implement game controller support and add keybindings for gamepad input
2026-05-07 17:50:07 +02:00
John Doe
9421d8d47c
Remove 'kill_rat' keybinding from game controls for cleaner input mapping
2026-05-07 17:49:52 +02:00
John Doe
509b3433b8
Refactor rendering logic in MiceMaze and Rat classes for improved clarity and efficiency
2026-04-14 12:15:16 +02:00
John Doe
bbafc3bbba
Add new PNG assets for Rat character and environmental elements
2026-04-14 11:35:57 +02:00
John Doe
b243cf04d3
Add explosion stage 1 PNG assets for all directions
...
- Added BMP_1_EXPLOSION_DOWN.png to original and preview directories.
- Added BMP_1_EXPLOSION_LEFT.png to original and preview directories.
- Added BMP_1_EXPLOSION_RIGHT.png to original and preview directories.
- Added BMP_1_EXPLOSION_UP.png to original and preview directories.
These assets are part of the explosion animation for the game, enhancing visual effects during gameplay.
2026-04-14 11:24:16 +02:00
John Doe
eaafd92dc2
Enhance asset loading by removing unnecessary surface parameter and adding texture variants for grass and flowers
2026-03-28 16:53:22 +01:00
John Doe
b60ffd87aa
Refactor code structure for improved readability and maintainability
2026-03-28 16:05:08 +01:00
John Doe
02202e4d3d
Add new PNG images for clean and preview outputs
...
- Added `image_clean.png` to the output directory for the clean image representation.
- Added `image_clean_preview.png` for the preview of the clean image.
- Introduced `image_svg_clean.png` for the SVG clean image representation.
2026-03-27 23:40:27 +01:00
John Doe
e7c5ebb119
Add Miniforge environment definition
2026-03-27 22:44:58 +01:00
John Doe
9a86a3734f
Add comprehensive NumPy tutorial for optimizing collision detection system
2025-10-24 23:07:57 +02:00
John Doe
b4224ed3a1
v1.1: Performance optimizations and bug fixes
...
Major improvements:
- NumPy-based collision system supporting 200+ units (~3ms/frame)
- Spatial hashing with vectorized distance calculations
- 4-pass game loop ensuring correct collision timing
- Blood overlay system with pre-generated stain pool
- Cached render positions and viewport bounds
- Spawn protection preventing rats spawning on weapons
Bug fixes:
- Fixed bombs not killing rats (collision system timing)
- Fixed gas not affecting rats (collision system timing)
- Fixed rats spawning on weapons (added has_weapon_at check)
- Fixed AttributeError with Gas collisions (added isinstance check)
- Fixed blood stain transparency (RGBA + SDL_BLENDMODE_BLEND)
- Reduced point lifetime from 200 to 90 frames (~1.5s)
- Blood layer now clears on game restart
Technical changes:
- Added engine/collision_system.py with CollisionLayer enum
- Updated all units to use collision layers
- Pre-allocate NumPy arrays with capacity management
- Hybrid collision approach (<10 simple, ≥10 vectorized)
- Python 3.13 compatibility
2025-10-24 20:04:26 +02:00
John Doe
12836dd2d2
Implement optimized collision detection system using NumPy
...
- Introduced a hybrid collision detection approach that utilizes NumPy for vectorized operations, improving performance for games with many entities (200+).
- Added a spatial grid for efficient lookups and AABB (Axis-Aligned Bounding Box) collision detection.
- Implemented a new `CollisionSystem` class with methods for registering units, checking collisions, and managing spatial data.
- Created performance tests to benchmark the new collision system against the old O(n²) method, demonstrating significant speed improvements.
- Updated existing code to integrate the new collision detection system and ensure compatibility with game logic.
2025-10-24 19:13:30 +02:00
Matteo Benedetto
47028c95ae
Implement main menu, profile list, and profile stats screens; add screen manager and user profile integration
2025-08-24 22:13:00 +02:00
Matteo Benedetto
c004edef8f
Update asset loading to include transparent color and adjust white flash timing; enhance nuclear bomb scoring and gas unit die method
2025-08-21 19:00:32 +02:00
Matteo Benedetto
59258258c4
Update API URL in UserProfileIntegration constructor
2025-08-21 18:31:09 +02:00
Matteo Benedetto
79369a1dd8
nice
2025-08-21 18:22:39 +02:00
Matteo Benedetto
cbb60a19d9
Implement Score API Client and User Profile Integration
...
- Added ScoreAPIClient for communication with the Mice Game Score API, including methods for user signup, score submission, and leaderboard retrieval.
- Developed a simple profile manager demo to showcase user profile management and API integration.
- Created a test script for the Score API to validate all endpoints and functionality.
- Introduced UserProfileIntegration to manage user profiles, including local storage and API synchronization.
- Added a JSON file for user profiles with sample data for testing and demonstration purposes.
2025-08-21 17:02:41 +02:00
Matteo Benedetto
265af1832d
Fix unit position retrieval in Rat class to use correct game state
2025-08-20 16:57:58 +02:00
Matteo Benedetto
17e5abc7df
Final 2.0
2025-08-20 16:43:16 +02:00
Matteo Benedetto
0141063baa
Add keybindings configuration in JSON and YAML formats; remove obsolete YAML file
2025-08-20 00:48:27 +02:00
Matteo Benedetto
8451ac7913
Refactor keybindings configuration and remove obsolete JSON files
2025-08-19 23:21:37 +02:00
Matteo Benedetto
1269913275
Refactor key handling and add keybindings configuration for game actions
2025-08-19 18:59:06 +02:00
Matteo Benedetto
4099b6f72e
Add joystick hat motion handling in KeyLogger
2025-08-19 16:37:04 +02:00
Matteo Benedetto
302d454783
Enhance joystick handling in KeyLogger by adding button release and axis motion events
2025-08-19 16:30:52 +02:00
Matteo Benedetto
3fa678507c
Fix window display by enabling window show and presenting the renderer in GameWindow
2025-08-19 16:23:06 +02:00
Matteo Benedetto
5e0f375948
Fix joystick initialization and update button press handling in KeyLogger
2025-08-19 16:19:59 +02:00
Matteo Benedetto
f5b910a305
Add joystick button press handling and update message display in KeyLogger
2025-08-19 16:08:31 +02:00
Matteo Benedetto
947d464afd
Fix window display initialization in KeyLogger and MiceMaze
2025-08-19 16:04:38 +02:00
Matteo Benedetto
0468b216c0
Display event type in KeyLogger during key events
2025-08-19 15:55:55 +02:00
Matteo Benedetto
06c5c84b06
Initialize SDL2 with joystick, video, and audio options in KeyLogger
2025-08-19 15:45:28 +02:00
Matteo Benedetto
9bc6f161d2
Refactor KeyLogger to use a single FontManager instance for rendering text
2025-08-19 13:29:36 +02:00
Matteo Benedetto
3c5307c0ef
Enhance KeyLogger to display key press/release messages on the window
2025-08-19 13:25:12 +02:00
Matteo Benedetto
1ea8db735f
Refactor KeyTester to KeyLogger for improved key event logging and SDL2 integration
2025-08-19 13:09:10 +02:00
Matteo Benedetto
79eb8c2de6
Log keycodes to a file on key press events
2025-08-19 12:34:06 +02:00
Matteo Benedetto
30c592e138
Add KeyTester class for key press and release handling
2025-08-18 23:25:17 +02:00
Matteo Benedetto
3bd2d9269f
Add Mice! game and associated tools
...
- Created gameinfo.xml for the Mice! game, detailing its description, release date, developer, and genre.
- Added mice.sh script to activate the conda environment and run the game.
- Implemented colorize_assets.py as a placeholder for future asset colorization functionality.
- Developed convert_audio.py to convert audio files to 8-bit unsigned format at 22100 Hz.
- Introduced maze.py for generating mazes using Depth First Search (DFS) with a graphical interface.
- Created resize_assets.py to resize PNG assets to 18x18 pixels and center them on a 20x20 canvas.
2025-08-18 00:20:40 +02:00
Matteo Benedetto
8a32aad877
OK
2025-08-17 18:49:07 +02:00
Matteo Benedetto
a910c8f74a
Fix spawn_mine keybinding: change second key from "Control_R" to 2 for consistency
2025-08-14 17:41:23 +02:00
Matteo Benedetto
f4ca5bba5b
Enhance rendering system: improve screen resolution handling, add audio system initialization, and refine blood surface generation and blending
2025-08-14 17:29:58 +02:00
Matteo Benedetto
c35fc9f1f7
mine implementation
2025-08-14 16:53:15 +02:00
Matteo Benedetto
a4b6703d12
Enhance blood stain handling: combine existing and new blood surfaces for better accumulation and add surface management
2025-08-13 23:50:21 +02:00
Matteo Benedetto
243bb6d9bd
Enhance blood stain mechanics: add dynamic blood surface generation and integrate blood stains into game rendering
2025-08-13 23:30:43 +02:00
Matteo Benedetto
689b21bf65
Add unit tests for UnitFactory functionality and initialize units package
2025-08-13 20:36:51 +02:00
Matteo Benedetto
088ae02080
Refactor unit classes to reduce code duplication and improve maintainability
...
- Updated the Unit base class to include common attributes and methods for all units.
- Refactored Bomb, Point, and Rat classes to inherit from the new Unit class structure.
- Implemented a consistent die method across units for better cleanup.
- Removed redundant code in unit initialization and added specific attributes where necessary.
- Deleted obsolete configuration file and added a comprehensive architecture guide for future reference.
2025-08-13 17:42:45 +02:00
Matteo Benedetto
3266ce8209
Initialize SDL and load graphics assets in GameWindow constructor
2025-08-12 15:30:45 +02:00
Matteo Benedetto
aa907ed80a
optimus-l1
2025-08-12 14:48:57 +02:00
Matteo Benedetto
89812d3ed8
Added full-screen toggle option in start menu.
...
- Added 'toggle_full_screen' key binding to json file.
- Implemented full-screen functionality in rats.py.
2025-01-04 16:11:50 +01:00
Matteo Benedetto
d31de92758
Rimuovi parametri non necessari dalla riproduzione audio e semplifica la gestione delle posizioni del testo
2024-12-28 12:03:01 +01:00
Matteo Benedetto
6dc871db54
Aggiorna la gestione dei tasti e aggiungi nuovi file di configurazione per le schermate di pausa e menu di avvio
2024-12-28 00:34:48 +01:00
Matteo Benedetto
69940890ec
Aggiungi implementazione di EGL per la gestione del contesto OpenGL
2024-12-27 22:23:05 +01:00
Matteo Benedetto
98a9e5fb8b
Aggiungi file di configurazione per i binding dei tasti e implementa la gestione degli input nel gioco
2024-12-27 19:03:04 +01:00
Matteo Benedetto
ccf7769979
Semplifica la gestione audio rimuovendo il supporto per più dispositivi e centralizzando l'uso di un singolo dispositivo audio
2024-12-26 01:14:26 +01:00
Matteo Benedetto
3e7056e23f
Rimuovi chiamate non necessarie ai metodi di riproduzione e arresto audio
2024-12-26 00:50:27 +01:00
Matteo Benedetto
8b3ad61047
Correggi la variabile di ambiente RESOLUTION e aggiorna il disegno dello sfondo per considerare gli offset
2024-12-26 00:33:23 +01:00
Matteo Benedetto
ebfe9dcceb
Aggiungi supporto per la creazione e il disegno di texture di sfondo nel gioco
2024-12-26 00:12:00 +01:00
Matteo Benedetto
cb25866754
Aggiungi supporto per audio e migliora la gestione delle dipendenze nel progetto
2024-12-25 02:15:25 +01:00
Matteo Benedetto
1964ad87f9
Aggiungi il file README.md con dettagli sul gioco, funzionalità, installazione e struttura del progetto
2024-12-23 23:12:05 +01:00
Matteo Benedetto
fb1f2cd7a0
Aggiungi .env e rats.spec al file .gitignore
2024-12-23 19:37:11 +01:00
Matteo Benedetto
1730538792
Rimuovi il file .env non più necessario
2024-12-23 19:36:53 +01:00
Matteo Benedetto
3aa9c84b54
Aggiorna la gestione della risoluzione nel file .env e modifica la funzione win_screen per supportare la visualizzazione dei punteggi
2024-12-23 18:31:50 +01:00
Matteo Benedetto
9553b4b4e2
Rimuovi il file scores.txt contenente i punteggi precedenti
2024-12-23 17:21:15 +01:00
Matteo Benedetto
8b213761e4
Aggiungi la funzione count_rats per contare i ratti e aggiorna la logica di gioco; modifica la risoluzione nel file .env e gestisci eccezioni nel metodo pop di Timer
2024-12-23 17:16:05 +01:00
Matteo Benedetto
3ee958b235
Aggiungi supporto per la pausa tramite un nuovo tasto nella classe KeyBindings
2024-12-23 17:03:23 +01:00
Matteo Benedetto
3eecc98304
Migliora la logica di scrolling degli assi nella classe KeyBindings
2024-12-23 16:56:36 +01:00
Matteo Benedetto
f3fe91ca36
Aggiungi supporto per lo scrolling degli assi nella classe KeyBindings e integra la gestione degli eventi di movimento degli assi nella classe GameWindow
2024-12-23 16:53:37 +01:00
Matteo Benedetto
f473265df7
Aggiorna la gestione dei tasti rilasciati nella classe KeyBindings per includere tasti aggiuntivi
2024-12-23 16:42:30 +01:00
Matteo Benedetto
7f18f7e46e
Rimuovi la gestione del rilascio dei tasti e migliora la logica di scrolling nella classe KeyBindings; aggiorna la classe GameWindow per gestire correttamente gli eventi di rilascio dei tasti
2024-12-23 16:31:42 +01:00
Matteo Benedetto
2e4d0b8726
Modifica la gestione dei tasti nella classe GameWindow; aggiungi supporto per il rilascio dei tasti e migliora la logica di scrolling
2024-12-23 16:23:40 +01:00
Matteo Benedetto
3be35d07ee
Aggiungi rats.spec al .gitignore
2024-12-23 13:03:20 +01:00
Matteo Benedetto
d446fd4097
Rimuovi il file rats.spec non più necessario
2024-12-23 13:03:14 +01:00
Matteo Benedetto
a123ee7c41
Aggiungi directory build e dist e il file rats al .gitignore
2024-12-23 13:00:43 +01:00
Matteo Benedetto
4425cb5873
Rimuovi il file warn-rats.txt non più necessario per la gestione dei moduli mancanti in PyInstaller
2024-12-23 13:00:21 +01:00
Matteo Benedetto
ae0a088011
Modifica il percorso di caricamento delle immagini nella classe GameWindow; aggiungi file di configurazione per PyInstaller
2024-12-23 12:55:34 +01:00
Matteo Benedetto
7a21d4cb42
Aggiorna la gestione della risoluzione e ottimizza il disegno delle immagini nella classe GameWindow; aggiungi scores.txt al .gitignore
2024-12-23 01:39:20 +01:00
Matteo Benedetto
5b97f25cdf
Modifica la posizione di disegno dell'immagine nella classe GameWindow per migliorare l'allineamento
2024-12-23 01:19:33 +01:00
Matteo Benedetto
43e7b143d9
Modifica la dimensione del font nel metodo pause_screen in base alla dimensione del target
2024-12-23 01:18:19 +01:00
Matteo Benedetto
65356a5eaf
Ottimizza la gestione della dimensione dello schermo nella classe GameWindow
2024-12-23 01:09:28 +01:00
Matteo Benedetto
97038023d5
Aggiungi supporto per la risoluzione personalizzata e gestione della pausa nel gioco
2024-12-23 00:59:48 +01:00
Matteo Benedetto
42e2f4aa16
Aggiungi il controllo della visibilità per il disegno di immagini e rettangoli nella classe GameWindow
2024-12-22 19:14:50 +01:00
Matteo Benedetto
f20e789d80
Modifica la gestione del ritardo nella classe GameWindow e ripristina l'uso di subprocess per la riproduzione audio in MiceMaze
2024-12-22 18:54:26 +01:00
Matteo Benedetto
8cffd7591a
Rimuovi l'inizializzazione audio dalla classe GameWindow
2024-12-22 18:49:07 +01:00
Matteo Benedetto
c6589caaa4
Rimuovi l'inizializzazione audio dalla classe GameWindow
2024-12-22 18:45:08 +01:00
Matteo Benedetto
7c772f4964
Rimuovi la duplicazione dell'inizializzazione audio nella finestra di gioco
2024-12-22 18:41:32 +01:00
Matteo Benedetto
d8b02589fd
Rimuovi l'impostazione del driver video SDL nell'inizializzazione della finestra di gioco
2024-12-22 18:39:18 +01:00
Matteo Benedetto
e426ca7091
Rimuovi la duplicazione dell'inizializzazione della finestra di gioco
2024-12-22 18:33:37 +01:00
Matteo Benedetto
65b88dbac5
Imposta il driver video SDL su "x11" e ripristina l'inizializzazione audio nel gioco
2024-12-22 18:30:37 +01:00
Matteo Benedetto
d1f8548702
Disabilita l'inizializzazione audio e la riproduzione dei suoni nel gioco
2024-12-22 18:22:45 +01:00
Matteo Benedetto
3ecc1aa134
Imposta il titolo predefinito della finestra di gioco su "Default"
2024-12-22 18:20:35 +01:00