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??