128x160 Snake Xenzia Java Game Access
int action = getGameAction(keyCode); switch(action) case UP: if(direction != DOWN) nextDir = UP; break; case DOWN: if(direction != UP) nextDir = DOWN; break; case LEFT: if(direction != RIGHT) nextDir = LEFT; break; case RIGHT: if(direction != LEFT) nextDir = RIGHT; break; case FIRE: if(gameState == RUNNING) gameState = PAUSED; else if(gameState == PAUSED) gameState = RUNNING; break;
private boolean collidesWithSnake(int x, int y) for(int i=0; i<length; i++) if(snakeX[i]==x && snakeY[i]==y) return true; return false;
public void start() thread = new Thread(this); running = true; thread.start(); 128x160 snake xenzia java game
} import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.GameCanvas; public class SnakeCanvas extends GameCanvas implements Runnable { private MIDlet midlet; private Thread thread; private boolean running; private int gameState; // 0=run,1=pause,2=gameover
public void paint(Graphics g) Graphics.LEFT); if(gameState == 2) g.drawString("GAME OVER", 30, 80, Graphics.TOP int action = getGameAction(keyCode)
RecordStore rs = RecordStore.openRecordStore("HighScore", true); byte[] data = (score + "").getBytes(); rs.addRecord(data, 0, data.length); Play Tone Manager.playTone(ToneControl.C4, 100, 100); Vibrate Display.getDisplay(midlet).vibrate(200);
private void updateGame()
g.setColor(0xFFFFFF); // head highlight g.fillRect(offsetX + x[0]*CELL_SIZE + 2, offsetY + y[0]*CELL_SIZE + 2, 4,4); g.setColor(0xFF0000); g.fillArc(offsetX + foodX*CELL_SIZE, offsetY + foodY*CELL_SIZE, CELL_SIZE, CELL_SIZE, 0, 360); Score Display Draw at top: Score: 0 using small font ( Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL ). 6. Input Handling Override keyPressed(int keyCode) in Canvas: