Quali sono i motivi pro e contro l'oggetto di un disegno di gioco e l'aggiornamento stesso? Ad esempio, se si dispone di un gioco in cui il giocatore ha una posizione sullo schermo, perché non hanno una classe onnicomprensiva:Cosa c'è che non va nell'architettura di un oggetto di gioco che si disegna e si aggiorna da solo?
public class Player {
private int x, y, xVelocity, yVelocity;
private Sprite s;
//...
public Player() {
// load the sprite here, somehow?
}
public void draw(CustomGraphicsClass g) {
g.draw(s, x, y);
}
public void update(long timeElapsed) {
x += (xVelocity * timeElapsed);
y += (yVelocity * timeElapsed);
}
}
Cosa c'è di sbagliato con questo disegno? Quali sono le cadute o le preoccupazioni? Come faresti meglio a scrivere qualcosa del genere, o meglio ad architettare questo tipo di cose in un gioco?
Inoltre, un po 'collegato, come implementereste il caricamento dell'immagine Sprite?
E inoltre, come implementeresti la collisione tra due Player
s?
(forse dovrei separare questi extra di due domande in nuove domande, eh?)
Mi piace la pagina a cui ti sei collegato con "molte più informazioni" !! Ci sto ancora pensando, ma è sicuramente ** utile non solo per dirti cosa fare, ma dato un esempio decente e una discussione sulle insidie e altre considerazioni. – Ricket
Grazie! Questo è un libro su cui sto lavorando, ma ora è più o meno in pausa. Fammi sapere se qualcosa non è chiaro nel capitolo. – munificent
+1 Solo per il punto 3, che è il motivo principale, specialmente sulle console. L'incapsulamento può portare a prestazioni scadenti della cache esp quando si memorizzano flag come IsVisible per oggetto, quindi si carica l'intera riga della cache per quell'oggetto solo per controllare se deve disegnarlo ecc. – zebrabox