Sto lavorando a un gioco, e senza entrare nei dettagli sto usando MVC "patterns", "rules" o qualsiasi altra cosa tu voglia chiamare per fare il gioco.
La vista include tutto il necessario per disegnare le cose sullo schermo, il controller passa l'input al modello. E il modello contiene la logica di gioco.
Ecco il mio problema, il gioco è stato realizzato per dispositivi mobili che variano nelle dimensioni dello schermo. Sento che il mio modello ha bisogno di conoscere le dimensioni della vista in modo che possa adattarsi in modo appropriato.
Ci ho pensato per un po 'di tempo in cui avrei potuto inserire tutte le regolazioni nella vista, ma mi sembra inefficiente tradurre ogni volta il posizionamento del modello nel posizionamento necessario della vista. Se la modella conosce le dimensioni, ha dovuto solo regolarsi una volta sola.
Quindi la mia domanda è: posso passare le dimensioni della vista al modello senza 'interrompere' MVC? Mi sento personalmente sono ancora disaccoppiati in questo modo perché una dimensione è solo un numero, potrei comunque cambiare la vista in qualsiasi momento purché abbia una dimensione. Ma volevo ottenere una risposta comunitaria su questo perché non ho visto molte discussioni su MVC in gioco.
(E per essere chiari non voglio una risposta sul perché non dovrei usarlo in un gioco, ma rompo MVC facendogli sapere la dimensione della vista)
MODIFICA - Ulteriori dettagli sulle esigenze del gioco e sul motivo per cui ho voluto passare la vista.
Alcune posizioni di oggetti devono essere impostate relativamente al bordo dello schermo (come gli elementi dell'interfaccia utente) in modo che appaiano relativamente nello stesso punto. Le dimensioni dello sprite non vengono allungate se la dimensione della finestra è più ampia, come lo schermo di un IPhone 5. Saranno posizionati solo relativamente al bordo dello schermo. Se ho dato alla vista di gestire questo, ho bisogno di una bandiera che dice che questo elemento è posizionato dire x numero di pixel da TOP BOTTOM RIGHT LEFT. Quindi consenti alla vista di disegnarla con quell'informazione. È accettabile, volevo solo sapere se c'era un modo migliore pur essendo ancora MVC perché sembra che in questo modo si ripeterà una logica all'infinito, dove come se conoscessi le dimensioni della vista nel modello, potrei convertire tutti i relativi posizioni in posizioni assolute in una corsa, ma con questo devo convertire su ogni aggiornamento allo schermo.