• 大小: 194KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-08-04
  • 语言: Java
  • 标签: java  贪吃蛇  

资源简介

一个由eclipse下写的贪吃蛇程序.界面还算可以,大小是1000*1000px,蛇的头部和身体可以设置颜色,可以设置背景颜色,可以设置网格线和网格线颜色,可以设置周围石块颜色,可以设置食物颜色,可以设置贪吃蛇速度,计分板功能没有写,压缩包内有预览的jar程序,里面有部分相应的注释.

资源截图

代码片段和文件信息

package me.hekuan;

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


/**
 * 它有两个功能: A:处理键盘的按键事件我选择选择继承一个类 

 * B:处理逻辑
 * 
 */

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;
}


/**
 * 键盘录入
 * 

 * 当按下空格键时开始/暂停游戏

 * 方向键控制贪吃蛇移动方向
 * @param e
 */
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {

case KeyEvent.VK_SPACE:
if (snake.isPause == true) {
snake.isPause = false;
System.out.println(“\n\n 贪吃蛇游戏已经开始! \n\n“);
} else {
snake.isPause = true;
System.out.println(“\n\n 贪吃蛇游戏已经暂停! \n\n“);
}
break;
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;
}
}

/**
 * 贪吃蛇的移动过程的判断

 * 判断贪吃蛇是否吃到了食物

 * 判断贪吃蛇是否吃到了围墙

 * 判断贪吃蛇是否吃到了自己

 * 最后让游戏面板绘图
 * @param snake
 */
public void snakeMoved(Snake snake) {

if (food.isSnakeEatFood(snake)) {
snake.eatFood();
food.newFood(getPoint());
}

if (ground.isSnakeEatRock(snake)) {
snake.die();
}

if (snake.isEatBody()) {
snake.die();
}

gamePanel.display(snake food ground);
}

/**
 * 开始新的游戏

 * 调用了food的newFood()方法

 * 调用了snake的start()方法

 */
public void newGame() {
food.newFood(getPoint());
snake.live = true;
snake.start();
gamePanel.display(snake food ground);

}

public void reNewGame() {
// snake.begin();
// newGame();
snake.init();
food.newFood(getPoint());
gamePanel.display(snake food ground);
snake.isPause = true;
snake.live = true;
}

/**
 * 产生新的食物坐标并传给food
 * @return new Point(x y);
 */
public static Point getPoint() {
Random random = new Random();
int x = random.nextInt(Global.WIDTH - 2) + 1;
int y = random.nextInt(Global.HEIGHT - 2) + 1;
System.out.println(“控制中心给出了食物坐标:(“ + x + “ “ + y + “)“);
return new Point(x y);
}


@Override
public void snakeEatFood() {

}



}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       31648  2016-11-20 19:27  main.jar
     目录           0  2016-11-18 18:18  Snake\
     文件         301  2016-11-17 14:59  Snake\.classpath
     文件         381  2016-11-16 09:29  Snake\.project
     目录           0  2016-11-16 09:29  Snake\.settings\
     文件         598  2016-11-16 09:29  Snake\.settings\org.eclipse.jdt.core.prefs
     目录           0  2016-12-14 08:46  Snake\bin\
     目录           0  2016-12-14 08:46  Snake\bin\me\
     目录           0  2016-12-20 09:39  Snake\bin\me\hekuan\
     文件         978  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$1.class
     文件        1021  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$10.class
     文件         711  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$11.class
     文件         554  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$12.class
     文件         978  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$2.class
     文件        1015  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$3.class
     文件         977  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$4.class
     文件         926  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$5.class
     文件        1756  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$6.class
     文件        1109  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$7.class
     文件        1030  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$8.class
     文件        1019  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel$9.class
     文件       10487  2016-12-14 08:46  Snake\bin\me\hekuan\ControlPanel.class
     文件        2914  2016-12-14 08:46  Snake\bin\me\hekuan\Controller.class
     文件        1953  2016-12-14 08:46  Snake\bin\me\hekuan\Food.class
     文件        1727  2016-12-14 08:46  Snake\bin\me\hekuan\GamePanel.class
     文件         375  2016-12-14 08:46  Snake\bin\me\hekuan\Global.class
     文件        2313  2016-12-14 08:46  Snake\bin\me\hekuan\Ground.class
     文件         601  2016-12-20 09:39  Snake\bin\me\hekuan\Main$1.class
     文件         743  2016-12-20 09:39  Snake\bin\me\hekuan\Main$2.class
     文件        1035  2016-12-20 09:39  Snake\bin\me\hekuan\Main$3.class
     文件         719  2016-12-20 09:39  Snake\bin\me\hekuan\Main$4.class
............此处省略82个文件信息

评论

共有 条评论