snake
No notes
Syntax:
Java 5
private class KeyHandler extends 1.5.0/docs/api/java/awt/event/KeyAdapter.html">KeyAdapter { private int cntKeyPressed = 0; public void keyPressed(1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent e) { super.keyPressed(e); if (!gameRunning) { initGame(); repaint(); } if (!snakeMoving && e.getKeyCode() == 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_SPACE) { snake.setSnakeDir(Direction.RIGHT); snakeMoving = true; repaint(); } else { // inc counter switch(e.getKeyCode()) { case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_UP: case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_DOWN: case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_LEFT: case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_RIGHT: cntKeyPressed++; break; } } } public void keyReleased(1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent e) { // dec counter switch(e.getKeyCode()) { case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_UP: case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_DOWN: case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_LEFT: case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_RIGHT: cntKeyPressed--; break; } // move snake if (cntKeyPressed == 0) { switch (e.getKeyCode()) { case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_UP: { if (snake.getSnakeDir() != Direction.DOWN) snake.setSnakeDir(Direction.UP); break; } case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_DOWN: { if (snake.getSnakeDir() != Direction.UP) snake.setSnakeDir(Direction.DOWN); break; } case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_LEFT: { if (snake.getSnakeDir() != Direction.RIGHT) snake.setSnakeDir(Direction.LEFT); break; } case 1.5.0/docs/api/java/awt/event/KeyEvent.html">KeyEvent.VK_RIGHT: { if (snake.getSnakeDir() != Direction.LEFT) snake.setSnakeDir(Direction.RIGHT); break; } } } } }