/src/BlinkenCanvas.java
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.Graphics;
public class BlinkenCanvas extends GameCanvas {
private BlinkenEngine engine;
private int x, y;
public BlinkenCanvas(BlinkenEngine e) {
super(false);
engine = e;
x = y = 0;
}
public void draw() {
Graphics g = getGraphics();
g.setColor(0);
g.fillRect(0, 0, getWidth(), getHeight());
for (int i = 0; i < engine.width; i++) {
for (int j = 0; j < engine.height; j++) {
if (engine.values[i][j] != 0) {
g.setColor(0xFF0000);
} else {
g.setColor(0x400000);
}
g.fillArc(i*8, j*8, 8, 8, 0, 360);
}
}
g.setColor(0x00FF00);
g.drawRect(x*8, y*8, 8, 8);
flushGraphics();
}
public void update() {
int keys = getKeyStates();
if ((keys & LEFT_PRESSED) != 0) {
x--;
if (x < 0) x = engine.width - 1;
} else if ((keys & RIGHT_PRESSED) != 0) {
x++;
x = x % engine.width;
} else if ((keys & UP_PRESSED) != 0) {
y--;
if (y < 0) y = engine.height - 1;
} else if ((keys & DOWN_PRESSED) != 0) {
y++;
y = y % engine.height;
} else if ((keys & FIRE_PRESSED) != 0) {
engine.values[x][y] = engine.values[x][y] != 0 ? 0 : 1;
}
}
}