In un gioco 2D, edifici possono essere aggiornati con moduli ; Questi moduli possono essere acquistati in un negozio .
Il negozio è rappresentato da una griglia stereotipata di icone, ciascuna icona rappresenta un modulo acquistabile. Quando il mouse passa su un'icona, il nome della descrizione del modulo associato appare in un popup.
Attualmente, i moduli sono oggetti modello che estendono una classe astratta Module
con i seguenti dati:
- Il nome del modulo
- Una descrizione di ciò che fa al tuo edificio
- L'icona utilizzata per visualizzare il modulo nella griglia negozio
- Inoltre, alcuni metodi di
f(building)
-like per "modulizzare" effettivamente l'edificio ...
All'inizio del gioco, shop viene fornito con un elenco di moduli . Quando si applica un modulo a un edificio i metodi f(building)
vengono richiamati sul modulo acquistato. Pertanto, anche senza utilizzare il pattern Singleton, ogni classe *Module
viene creata solo una volta.
Sono consapevole che questo design non è davvero ottimale:
- In primo luogo, un modulo , un modello oggetto, incorpora la propria icona, una vista rappresentazione.
- E ancora più importante: un modulo è senza stato perché lo stesso oggetto può essere applicato su diversi edifici (possibilmente di giocatori diversi); per essere stato, un modulo dovrebbe indossare una mappa
[building] => data
... Non so perché, ma ho un brutto presentimento di questa soluzione ...
Tempo delle domande:
- La
[building] => data
mappa efficace una soluzione non valida? - Se è così, qual è il modo migliore per risolvere la trappola dello "stato di gravità" che sto incontrando?
- Sussidiario: anche, sarebbe più compatibile con MVC se ogni oggetto del modello non dovesse indossare un'immagine ...