Hola a todos.
Estoy trabajando en un pequeño proyecto de un juego y de momento tengo el pintado del mapa y de 1 soldado en pantalla. El problema que tengo es que no importa el orden de pintado, cuando el soldado llega a ciertas coordenadas empieza a pintarse detrás del mapa y no entiendo porque.
http://imageshack.us/photo/my-images/836/33102410.png http://img41.imageshack.us/img41/9716/51357100.png http://img17.imageshack.us/img17/6564/25989732.png
Utilizo la tecnica del doble buffer, en el init del JFrame creo una imagen:
Código:
doubleBuffer = createImage(ManagedGame.width*32, ManagedGame.height*32);
sobre la cual obtengo el grafico2d
Código:
graf = (Graphics2D) doubleBuffer.getGraphics();
en el metodo run (mi Jframe tmb implementa Runnable)
limpio el grafico
Código:
this.graf.setColor(Color.WHITE);
this.graf.fillRect(0, 0, doubleBuffer.getWidth(null), doubleBuffer.getHeight(null));
y llamo al paint de todos los objetos sobre este grafico
Código:
ManagedGame.level.paint(graf);
despues llamo a repaint
dentro del ManagedGame.level.paint(graf) recorro todas las celdas pintandolas en este orden:
primero el suelo y despues los soldados que tenga
Código:
public void paint(Graphics2D g) {
ground.paint(g);
for (int i = 0; i < maxEntities; i++)
{
if ( this.listEntities[i] == null ) continue;
this.listEntities[i].paint(g);
}
}
el paint de ground y de la lista de entidades simplemente pintan una imagen en unas coordenadas:
Código:
public void paint(Graphics2D g) {
g.drawImage(this.img, (int)this.position.x, (int)this.position.y, null);
}
He cambiado el orden de pintado pero el resultado es el mismo (cosa que no entiendo).
Como puedo solucionar este problema? y a que se debe?
Un Saludo y muchas gracias.
Dani.