Hola, me pareció muy interesante el tutorial, me gustaría aprender un poco mas, nunca había hecho algo así en java (aunque si tengo algo de conocimiento del lenguaje). Aqui esta mi codigo modificado con las sugerencias que propones, suena que se está formando un interesante y minimalista juego de estrategia

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
public static final int GAME_WIDTH = 640;
public static final int GAME_HEIGHT = 480;
private int expectedFps = 60;
private boolean existenCuadros = false;
public GamePanel() {
this.
setPreferredSize(new Dimension(GAME_WIDTH, GAME_HEIGHT
)); this.
gameThread = new Thread(this); }
@Override
public void run() {
long start;
long elapsed;
long wait;
while(true) {
this.repaint();
wait = 1000/expectedFps - (elapsed-start)/1000000;
wait = (wait < 0) ? 0 : wait;
try {
}
}
}
private void init() {
this.gameThread.start();
this.addKeyListener(this);
this.setFocusable(true);
this.requestFocus();
}
@Override
public void addNotify() {
super.addNotify();
init();
}
private void dibujaCuadros
(Graphics g
) {
}
@Override
public void paintComponent
(Graphics g
) { g.
setColor(Color.
DARK_GRAY); g.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);
g.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
g.fillRect(rectangle2.x, rectangle2.y, rectangle2.width, rectangle2.height);
for(int i=1; i<=20; i++) {
if(existenCuadros)
g.
setColor(Color.
YELLOW); else
g.
setColor(Color.
DARK_GRAY); g.drawLine(0, i*rectangle.height, GAME_WIDTH, i*rectangle.height);
g.drawLine(i*rectangle.width, 0, i*rectangle.width, GAME_HEIGHT);
}
}
@Override
}
@Override
switch(e.getExtendedKeyCode()) {
rectangle.x -= 32;
if(rectangle.x < 0) rectangle.x = 0;
break;
rectangle.x += 32;
if(rectangle.x >= GAME_WIDTH) rectangle.x = GAME_WIDTH - rectangle.width;
break;
rectangle.y -= 32;
if(rectangle.y < 0) rectangle.y = 0;
break;
rectangle.y += 32;
if(rectangle.y >= GAME_HEIGHT) rectangle.y = GAME_HEIGHT - rectangle.height;
break;
rectangle2.x -= 32;
if(rectangle2.x < 0) rectangle2.x = 0;
break;
rectangle2.x += 32;
if(rectangle2.x >= GAME_WIDTH) rectangle2.x = GAME_WIDTH - rectangle2.width;
break;
rectangle2.y -= 32;
if(rectangle2.y < 0) rectangle2.y = 0;
break;
rectangle2.y += 32;
if(rectangle2.y >= GAME_HEIGHT) rectangle2.y = GAME_HEIGHT - rectangle2.height;
break;
existenCuadros = !existenCuadros;
break;
}
}
@Override
}
}