snake

by yaron on July 25th, 2010
No notes
Syntax: Java 5
Show lines - Hide lines - Show in textbox - Download
	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;
					}
				}
			}
		}
	}
 

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS