protected void keyPressed(int keyCode) int action = getGameAction(keyCode); if (action == LEFT) catcherX -= 20; if (catcherX < 0) catcherX = 0; else if (action == RIGHT) catcherX += 20; if (catcherX + CATCHER_W > width) catcherX = width - CATCHER_W;
public void pauseApp() {} public void destroyApp(boolean unconditional) {}
class GameCanvas extends Canvas implements Runnable { private boolean running; private int catcherX, catcherY; private int ballX, ballY; private int score; private int width, height; private Thread gameThread; symbian games 240x320
Below is a for 240x320 screens. Game: “Catch the Light” (240x320, MIDP 2.0) import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class CatchGame extends MIDlet implements CommandListener, Runnable { private Display display; private GameCanvas gameCanvas; private Command exitCommand;
public void startApp() display.setCurrent(gameCanvas); gameCanvas.start(); if (catcherX <
protected void paint(Graphics g) // Background g.setColor(0, 0, 0); g.fillRect(0, 0, width, height);
private void updateGame() // Move ball down ballY += 6; if (ballY + BALL_SIZE >= catcherY && ballX + BALL_SIZE > catcherX && ballX < catcherX + CATCHER_W) // Caught! score++; ballX = (int)(Math.random() * (width - BALL_SIZE)); ballY = 20; // Missed if (ballY > height) ballX = (int)(Math.random() * (width - BALL_SIZE)); ballY = 20; score = Math.max(0, score - 1); 0) catcherX = 0
public void commandAction(Command c, Displayable d) if (c == exitCommand) destroyApp(true); notifyDestroyed();