Estoy programando un gran juego en Java y estoy tratando de optimizar el código, pero también para mantener el código limpio y bien organizado. Ahora no estoy seguro de si debería usar el campo público estático de clases individuales que tienen un par de variables que muchas instancias usan.Uso del campo público estático, buena práctica de programación/rápido?
Por ejemplo, la cámara de clase tiene una posición xey que define qué parte del mapa está mirando el usuario y qué debe dibujarse en la pantalla. Actualmente estoy evaluando con 50 000 unidades y tengo las siguientes opciones para dibujarlas.
1: almacenar una referencia a la instancia de la cámara en cada unidad y llame a getX() y getY() cuando se debe elaborarse:
public void paint()
{
paint(x - camera.getX(), y - camera.getY());
}
2: Fuente de las coordenadas de la cámara como argumentos a cada unidad cuando se debe elaborarse:
public void paint(int cameraX, int cameraY)
{
paint(x - cameraX, y - cameraY);
}
3: Hacer las variables x e y de la clase de cámara estática:
public void paint()
{
paint(x - Camera.x, y - Camera.y);
}
Me interesa lo que generalmente se considera la mejor solución y si afecta el rendimiento. Tal vez hay más formas de hacer esto en las que todavía no he pensado.
Gracias!
Cuando reescribí mi código para usar campos públicos estáticos noté un descenso en la velocidad de fotogramas de aproximadamente 60 fps. Retrocediendo, aumenté el rendimiento a los niveles anteriores pero no descubrí qué causó la caída. Así que supongo que me tomaré un poco más de tiempo extra para configurar todas las referencias y olvidarme de las cosas del campo estático. Gracias por las respuestas! – ArmoredSandwich