diff --git a/MOBILE_README.md b/MOBILE_README.md new file mode 100644 index 0000000..114d2aa --- /dev/null +++ b/MOBILE_README.md @@ -0,0 +1,105 @@ +# 🐭 Mice! - Mobile Version + +## Caratteristiche Mobile + +Il gioco è stato adattato per dispositivi mobile con le seguenti caratteristiche: + +### 📱 Layout Responsive con Bootstrap 5 + +- **Desktop (≥768px)**: Layout a due colonne con canvas a sinistra e controlli a destra +- **Mobile (<768px)**: Layout verticale con controlli touch sotto il canvas + +### 🎮 Controlli Touch + +#### Pad Direzionale (D-Pad) +- **Freccia Su**: Movimento in alto +- **Freccia Giù**: Movimento in basso +- **Freccia Sinistra**: Movimento a sinistra +- **Freccia Destra**: Movimento a destra + +#### Pulsanti Azione +- **💣 Bomb (Spazio)**: Piazza una bomba +- **⚠️ Mine (M)**: Piazza una mina +- **☁️ Gas (G)**: Rilascia gas velenoso +- **☢️ Nuclear (N)**: Bomba nucleare (una volta per partita) +- **⏸️ Pause (P)**: Metti in pausa il gioco + +### 🎨 Design Adattivo + +- Canvas responsive che si adatta alla larghezza dello schermo +- Pulsanti touch ottimizzati per il tocco (60px di altezza minima) +- Feedback visivo su touch (scale animation) +- Interfaccia dark theme ottimizzata per mobile + +### 🔧 Ottimizzazioni + +- `user-scalable=no` per prevenire lo zoom accidentale +- `touch-action: none` sui controlli per prevenire lo scroll durante il gioco +- Prevenzione del menu contestuale su long press +- Eventi sia touch che mouse per compatibilità con desktop + +## Test + +Per testare su mobile: + +1. Avvia un server web locale: + ```bash + python -m http.server 8000 + ``` + +2. Apri il browser sul tuo smartphone e naviga a: + ``` + http://[IL-TUO-IP-LOCALE]:8000/index.html + ``` + +3. Verifica: + - [ ] I controlli touch sono visibili solo su mobile + - [ ] Il D-Pad risponde al tocco + - [ ] I pulsanti azione funzionano correttamente + - [ ] Il canvas si adatta correttamente + - [ ] Non c'è zoom accidentale durante il gioco + +## Compatibilità Browser + +- ✅ Chrome/Edge Mobile (Android/iOS) +- ✅ Safari Mobile (iOS) +- ✅ Firefox Mobile (Android) +- ✅ Samsung Internet + +## Note Tecniche + +### Simulazione Eventi Tastiera + +I controlli touch simulano eventi `KeyboardEvent` nativi per garantire compatibilità con il codice Python/Pygame esistente: + +```javascript +function simulateKeyPress(key, type = 'keydown') { + const event = new KeyboardEvent(type, { + key: key, + code: key === ' ' ? 'Space' : `Key${key.toUpperCase()}`, + keyCode: key.charCodeAt(0), + which: key.charCodeAt(0), + bubbles: true, + cancelable: true + }); + document.dispatchEvent(event); + canvas.dispatchEvent(event); +} +``` + +### Bootstrap Components + +- **Grid System**: `container-fluid`, `row`, `col-*` per layout responsive +- **Modal**: Per la creazione profilo +- **Form Controls**: Input, select, checkbox con stili dark +- **Progress Bar**: Per indicare il caricamento degli asset +- **Icons**: Bootstrap Icons per le frecce direzionali + +## Miglioramenti Futuri + +- [ ] Supporto vibrazione per feedback tattile +- [ ] Joystick virtuale con movimento analogico +- [ ] Gesture swipe per movimento rapido +- [ ] Orientamento landscape automatico su mobile +- [ ] PWA manifest per installazione come app nativa +- [ ] Service worker per gioco offline diff --git a/index.html b/index.html index b3bc49a..25b4fc8 100644 --- a/index.html +++ b/index.html @@ -2,75 +2,67 @@
- +Eliminate the rats before they multiply! A strategic maze game with bombs, mines, and gas.
-Browser Edition powered by Python + Pygame via Pyodide
- -Eliminate the rats before they multiply!
+Browser Edition powered by Python + Pygame via Pyodide
+Move your cursor around the maze and use your arsenal to eliminate rats before they overrun the level:
-Move your cursor around the maze and use your arsenal to eliminate rats before they overrun the level:
+