caralu
16-09-2006, 10:25
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:
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??
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:
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??