Sto programmando un grande gioco in Java e sto cercando di ottimizzare il codice ma anche di mantenere il codice pulito e ben organizzato. Ora non sono sicuro se dovrei usare il campo statico pubblico delle singole classi che hanno un paio di variabili che sono utilizzate da molte istanze.Uso del campo statico pubblico, buona pratica di programmazione/veloce?
Ad esempio, la telecamera di classe ha una posizione xey che definisce quale parte della mappa l'utente sta guardando e cosa deve essere disegnato sullo schermo. Attualmente sto facendo il benchmark con 50.000 unità e ho le seguenti opzioni per disegnarle.
1: memorizzare un riferimento all'istanza della telecamera in ciascuna unità e chiamare coordinatax() e Gety() quando deve essere disegnato:
public void paint()
{
paint(x - camera.getX(), y - camera.getY());
}
2: fornitura le coordinate della telecamera come argomenti a ciascuna unità quando opportuno richiamare:
public void paint(int cameraX, int cameraY)
{
paint(x - cameraX, y - cameraY);
}
3: Effettuare x e Y variabili della classe telecamera fissa:
public void paint()
{
paint(x - Camera.x, y - Camera.y);
}
Sono interessato a ciò che è generalmente considerato come la soluzione migliore e se influisce sulle prestazioni. Forse ci sono altri modi per farlo a cui non ho ancora pensato?
Grazie!
Quando ho riscritto il mio codice per utilizzare i campi statici pubblici ho notato un calo nel framerate di circa 60 fps. Rotolando ho aumentato le prestazioni ai vecchi livelli ma non ho scoperto cosa ha causato il calo. Quindi immagino che mi prenderò un po 'più di tempo in più per impostare tutti i riferimenti e dimenticare le cose sul campo statico. Grazie per le risposte! – ArmoredSandwich