⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controller.java

📁 贪吃蛇
💻 JAVA
字号:
package cn.cavtc;

import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random;

public class Controller extends KeyAdapter implements SnakeListener{
	private Snake snake;
	private Food food;
	private Ground ground;
	private GamePanel gamePanel;
	
	

	public Controller(Snake snake, Food food, Ground ground, GamePanel gamePanel) {
		super();
		this.snake = snake;
		this.food = food;
		this.ground = ground;
		this.gamePanel = gamePanel;
	}

	@Override
	public void keyPressed(KeyEvent e) {
		// TODO 自动生成方法存根
		switch(e.getKeyCode()){
		case KeyEvent.VK_UP:
			snake.changeDirection(Snake.UP);
			break;
		case KeyEvent.VK_DOWN:
			snake.changeDirection(Snake.DOWN);
			break;
		case KeyEvent.VK_LEFT:
			snake.changeDirection(Snake.LEFT);
			break;
		case KeyEvent.VK_RIGHT:
			snake.changeDirection(Snake.RIGHT);
			break;
		}
	}

	public void snakeMoved(Snake snake) {
		if(food.isEatedBy(snake)){
			snake.eatFood();
			food.newFood(getRandomPoint());
		}
		if(ground.isRockEatedBy(snake)|| snake.isEatBody()){
			snake.die();
		}
		
		gamePanel.display(snake, food, ground);
		
	}
	
	public void newGame(){
		snake.start();
		food.newFood(getRandomPoint());
	}
	
	private Point getRandomPoint(){
		Random random=new Random();
		int x=0;
		int y=0;
		do{
			x=random.nextInt(Global.WIDTH);
			y=random.nextInt(Global.HEIGHT);
		}while(ground.getRocks()[x][y]==1);
		
		return new Point(x,y);
	}
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -