Estoy haciendo un "juego" de esos que van entre comillas, fui avanzando bastante, de hecho les dejo un video que subi a youtube de lo que avancé para que tengan una idea de lo que estoy hablando:
http://www.youtube.com/watch?v=gXRs0Go5EYY
El problema que se me está ocasionando, y como en algún momento del video se puede ver, es que estoy actualizando constantemente la pantalla unas cuantas veces por segundo. Y esto se debe a que tengo 3 capas de imágenes:
1) El fondo (el mapa) del juego, que es donde coloco los "tiles" (cuadraditos del mapa).
2) El personaje y su movimiento.
3) Objetos (tiles) que pasan por arriba del personaje.
Código:
Constantemente actualizo el mapa en ese orden a través de un hilo de ejecución (un Thread). Pero yo no quiero que esto suceda, y ahí viene mi problema: Dependiendo de los recursos del jugador, la pantalla puede llegar a pestañear demasiado, y eso hace que se vea muy feo. Lo que se me ocurre es buscar la forma de poder por ejemplo solo la capa de fondo, sin tener que actualizar las capas superiores, y de hecho solo mover la capa de fondo (no borrarla y volver a dibujarla). Estuve investigando y llegué a creer que era posible gracias a los JPanel, pero he preguntado en foros, he investigado horas y horas y jamás logré hacerlo.public void run() { condicionHiloPrincipal = true; while (condicionHiloPrincipal) { render(); esperar(framesPerSecond); } System.exit(0); } public void render() { Graphics g; g = this.getGraphics(); if (g != null) { dibujarMapa(g); dibujarPersonaje(g); dibujarObjetosArriba(g); g.dispose(); } }
Si hay alguien que sepa bien como se podría solucionar mi problema le agradecería mucho, ya que esto me está atormentando hace días.
Saludos,
Federico.