protected void paintPlayer(Graphics g, boolean isPlayer1) {
if (isPlayer1) {
g.setColor(255, 255, 255);
}
else {
g.setColor(255, 0, 0);
}
g.drawRect(1, 1, getWidth() - 2, getHeight() - 2);
g.drawRect(2, 2, getWidth() - 4, getHeight() - 4);
g.drawRect(3, 3, getWidth() - 6, getHeight() - 6);
}
public void paint(Graphics g) {
g.setColor(0x00000000);
g.fillRect(0, 0, getWidth(), getHeight());
paintPlayer(g, isPlayer1);
paintSelected(g);
paintMap(g);
flushGraphics();
}
private void init() {
if (newGame) {
chesses = new Chesses[chessMapGrid + 1][chessMapGrid + 1];
isPlayer1 = true;
selectedX = selectedY = chessMapGrid / 2;
}
}
public void run() {
g = getGraphics();
while (isplay) {
try {
input(g);
paint(g);
Thread.sleep(500);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
public void input(Graphics g) {
int keyStates = getKeyStates();
if ( (keyStates & LEFT_PRESSED) != 0) {
selectedX = (--selectedX + chessMapGrid + 1) % (chessMapGrid + 1);
}
else if ( (keyStates & RIGHT_PRESSED) != 0) {
selectedX = (++selectedX) % (chessMapGrid + 1);
}
else if ( (keyStates & UP_PRESSED) != 0) {
selectedY = (--selectedY + chessMapGrid + 1) % (chessMapGrid + 1);
}
else if ( (keyStates & DOWN_PRESSED) != 0) {
selectedY = (++selectedY) % (chessMapGrid + 1);
}
else if ( (keyStates & FIRE_PRESSED) != 0) {
if (chesses[selectedY][selectedX] == null) {
chesses[selectedY][selectedX] = new Chesses(this.isPlayer1);
if (checkWin()) {
String winner;
if (isPlayer1) {
winner = "白方胜利";
player1win++;
}
else {
winner = "红方胜利";
player2win++;
}