资源简介
一个由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个文件信息
相关资源
- Windows bat 设置Java环境变量
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
评论
共有 条评论