Ciao a tutti!
Ho un problema di progettazione:
In un videogioco ho creato una classe principale Entity estesa da tutte le classi che hanno un'animazione (come la classe Nemico, PersonaggioPrincipale e la classe Bonus). Dovrei creare però diversi tipi di Oggetti Bonus: un tipo che rimane fisso sullo schermo (come le monete di "Mario Bros" per intenderci..) e l'altro tipo invece compare per un'intervallo di tempo (inversamente proporzionale al suo punteggio) e poi sparisce.
Io ho creato questo tipo di progettazione con 1 sola classe Bonus che estende Entity differenziando gli oggetti Bonus alla creazione, nel costruttore, in questo modo:
codice:
public Bonus(Game game, String riferimento_Immagine, Map map, float x, float y, char type) 
        {
        super(riferimento_Immagine, map, x, y, type);             
        this.game = game;
        this.tipo = type;
        
        if(type == map.MONETA)
            {
                this.punti = 100;
                this.visibile = true;
            }
        
        if(type == map.PREMIO)
            {
                this.punti = 200;
                this.visibile = false;
                ContaTempo timer = new ContaTempo();
            }
        
        if(type == map.CHIAVE)
            {
                this.punti = 0;
                this.visibile = true;
            }
        }
Non mi sembra molto corretto come stile i progettazione questa prima soluzione che ho implementato..Secondo voi sarebbe meglio fare un'interfaccia Bonus che estende la classe Entity e poi creare classi differenti per ogni oggetto Bonus che implementino l'interfaccia, oppure creare direttamente classi differenziate per ogni oggetto Bonus, ciascuna che estende la Classe Entity??