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

📄 controller.java

📁 java 贪吃蛇小游戏 项目 源码
💻 JAVA
字号:
package org.han.snake.controller;

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

import org.han.snake.SnakeListener.SnakeListener;
import org.han.snake.entities.Food;
import org.han.snake.entities.Ground;
import org.han.snake.entities.ShowScore;
import org.han.snake.entities.Snake;
import org.han.snake.util.Global;
import org.han.snake.view.GamePanel;

public class Controller extends KeyAdapter implements SnakeListener{

	private Snake snake;
	private Food food;
	private Ground ground;
	private GamePanel gamepanel;
	private ShowScore showScore;
	public Controller(Snake snake, Food food, Ground ground, GamePanel gamepanel,ShowScore showScore) {
		this.snake = snake;
		this.food = food;
		this.ground = ground;
		this.gamepanel = gamepanel;
		this.showScore = showScore;
	}
	
	public void keyPressed(KeyEvent e) {
		switch(e.getKeyCode()){
		case KeyEvent.VK_UP:
			snake.changeDirection(Snake.UP);
			break;
		case KeyEvent.VK_RIGHT:
			snake.changeDirection(Snake.RIGHT);
			break;
		case KeyEvent.VK_DOWN:
			snake.changeDirection(Snake.DOWN);
			break;
		case KeyEvent.VK_LEFT:
			snake.changeDirection(Snake.LEFT);
			break;
		}
	}
	@Override
	public void SnakeMoved(Snake snake) {
		if(food.isSnakeEatFood(snake)){
			snake.eatFood();
			food.newFood(getPoint());
		}
		if(ground.isSnakeEatRock(snake)||snake.isEatBody()){
			snake.die();
		}
		gamepanel.display(snake, food, ground,showScore);
		
	}
	
	public void newGame(){
		snake.start();
		food.newFood(getPoint());
	}
	
	public void againGame(){
		snake.die();
		newGame();
	}

	private Point getPoint() {
		Random random = new Random();
		int x = random.nextInt(Global.WIDTH);
		int y = random.nextInt(Global.HEIGHT);
		return new Point(x,y);
	}

}

⌨️ 快捷键说明

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