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.