You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.1 KiB

🐭 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:

    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:

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