Generatore oggetti

di il
3 risposte

Generatore oggetti

Buonasera da poco ho iniziato a lavorare in java, mi sono trovato difronte ad un problema semantico, che non riesco a risolvere. Devo realizzare un generatore di oggetti. La classe è la seguente:

public class GeneratoreOggettiRandom {

    private final int numNemici = 2;
    private Random r;
    private ArrayList<EnemyFirstLevel> enemyFirstLevel;
    private ArrayList<EnemySecondLevel> enemySecondLevel;

    public GeneratoreOggettiRandom() {
        r = new Random();
        enemyFirstLevel = new ArrayList<EnemyFirstLevel>();
        enemySecondLevel = new ArrayList<EnemySecondLevel>();
    }

    
    public void genera() {
        int OggettiDaGenerare = r.nextInt(numNemici);
        if (OggettiDaGenerare == 0) {
            EnemyFirstLevel Buzzy = new EnemyFirstLevel("/Image/nemici/Buzzy Beetle.png", MainFrame.larghezza, 370, 30, 24);
            Buzzy.setX(MainFrame.larghezza + Buzzy.getWidth());
            enemyFirstLevel.add(Buzzy);
        } else {
            EnemySecondLevel chomp = new EnemySecondLevel("/Image/nemici/Chomp.png", MainFrame.larghezza, 370, 50, 20);
            chomp.setX(MainFrame.larghezza + chomp.getWidth());
            enemySecondLevel.add(chomp);
        }
    }
    

    public void drawOggettiGeneratiRandom(Graphics g) {
        for (int i = 0; i < enemyFirstLevel.size(); i++) {
            enemyFirstLevel.get(i).disegna(g);
        }
        for (int i = 0; i < enemySecondLevel.size(); i++) {
            enemySecondLevel.get(i).disegna(g);
        }
    }
}
In tale classe effettuo due operazioni, quella di disegno degli oggetti, e l'operazione di genera(), che mi consente di generare oggetti, in questo caso in maniera random. Il problema è che non sono sicuro se il metodo genera così implementato sia semanticamente corretto. Nel caso io volessi generare n oggetti che hanno tutti caratteristiche diverse tra cui anche la posizione, la dimensione ecc, come dovrei impostare tale classe?
Grazie in anticipo

3 Risposte

  • Re: Generatore oggetti

    Scusate se disturbo, nessuno sa darmi un consiglio, o una soluzione alternati su come impostare tale classe?
  • Re: Generatore oggetti

    Finchè utilizzi i "magic numbers" solo tu puoi sapere se è semanticamente corretto
  • Re: Generatore oggetti

    Ti ringrazio per la risposta. Allora se intendi per magic numbers i valori dei parametri di questa istanza:
    
    EnemyFirstLevel Buzzy = new EnemyFirstLevel("/Image/nemici/Buzzy Beetle.png", MainFrame.larghezza, 370, 30, 24);
    la classe è la seguente:
    
    public class EnemyFirstLevel{
          private BufferedImage image;
          private Rectangle imageRect;
    
    public EnemyFirstLevel(String pString, int pX, int pY, int pWidth, int pHeight) {
            this.image = Resources.getImage(pString);
            this.imageRect = new Rectangle(pX, pY, pWidth, pHeight);
        }
    
        public void disegna(Graphics g) {
            g.drawImage(this.image, this.imageRect.x, this.imageRect.y, (int)        this.imageRect.getWidth(), (int) this.imageRect.getHeight(), null);
            }
        }
    Grazie mille
Devi accedere o registrarti per scrivere nel forum
3 risposte