资源简介
基于Java的贪吃蛇游戏源代码,非常完整,匹配的毕业论文请看我上传的另一个资源,非常详细完整!
代码片段和文件信息
package cn.snake.controller;
import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.HashSet;
import java.util.Set;
import javax.swing.JLabel;
import cn.snake.entities.Food;
import cn.snake.entities.Ground;
import cn.snake.entities.Snake;
import cn.snake.listener.GameListener;
import cn.snake.listener.SnakeListener;
import cn.snake.util.Global;
import cn.snake.view.GamePanel;
/**
* 控制器
* 控制Ground Snake Food
* 负责游戏的逻辑
* 处理按键事件
*
* 实现了SnakeListener接口 可以处理Snake 触发的事件
* 方法 snakeEatFood() 处理蛇吃到食物后触发的 snakeEatFood事件 但什么也没做
*
*
*/
public class Controller extends KeyAdapter implements SnakeListener {
/* 地形 */
private Ground ground;
/* 蛇 */
private Snake snake;
/* 食物 */
private Food food;
/* 显示 */
private GamePanel gamePanel;
/* 提示信息 */
private JLabel gameInfoLabel;
private boolean playing;
private int map;
/* 控制器监听器 */
private Set listeners = new HashSet();
/**
* 处理按键事件
* 接受按键 根据按键不同 发出不同的指令
* UP: 改变蛇的移动方向为向上
* DOWN: 改变蛇的移动方向为向下
* LEFT: 改变蛇的移动方向为向左
* RIGHT: 改变蛇的移动方向为向右
* SPACE: 暂停/继续
* PAGE UP: 加快蛇的移动速度
* PAGE DOWN: 减慢蛇的移动速度
* Y: 重新开始游戏
*/
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() != KeyEvent.VK_Y && !playing)
return;
// TODO Auto-generated method stub
/* 根据按键不同 让蛇改变不同的方向 */
switch (e.getKeyCode()) {
/* 方向键 上 */
case KeyEvent.VK_UP:
if (snake.isPause()) {
snake.changePause();
for (GameListener l : listeners)
l.gameContinue();
}
snake.changeDirection(Snake.UP);
break;
/* 方向键 下 */
case KeyEvent.VK_DOWN:
if (snake.isPause()) {
snake.changePause();
for (GameListener l : listeners)
l.gameContinue();
}
snake.changeDirection(Snake.DOWN);
break;
/* 方向键 左 */
case KeyEvent.VK_LEFT:
if (snake.isPause()) {
snake.changePause();
for (GameListener l : listeners)
l.gameContinue();
}
snake.changeDirection(Snake.LEFT);
break;
/* 方向键 右 */
case KeyEvent.VK_RIGHT:
if (snake.isPause()) {
snake.changePause();
for (GameListener l : listeners)
l.gameContinue();
}
snake.changeDirection(Snake.RIGHT);
break;
/* 回车或空格 (暂停) */
case KeyEvent.VK_ENTER:
case KeyEvent.VK_SPACE:
snake.changePause();
/* === */
for (GameListener l : listeners)
if (snake.isPause())
l.gamePause();
else
l.gameContinue();
break;
/* PAGE_UP 加速 */
case KeyEvent.VK_PAGE_UP:
snake.speedUp();
break;
/* PAGE_DOWN 减速 */
case KeyEvent.VK_PAGE_DOWN:
snake.speedDown();
break;
/* 字母键 Y (重新开始游戏) */
case KeyEvent.VK_Y:
if (!isPlaying())
newGame();
break;
}
/* 重新显示 */
if (gamePanel != null)
gamePanel.redisplay(ground snake food);
/* 更新提示 */
if (gameInfoL
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-04-08 17:22 源代码\
目录 0 2012-04-08 16:56 源代码\Snake\
文件 232 2008-01-28 09:37 源代码\Snake\.classpath
文件 381 2011-12-12 21:32 源代码\Snake\.project
目录 0 2012-04-08 16:56 源代码\Snake\.settings\
文件 629 2011-12-12 21:33 源代码\Snake\.settings\org.eclipse.jdt.core.prefs
目录 0 2012-04-08 17:17 源代码\Snake\bin\
目录 0 2012-04-08 17:06 源代码\Snake\bin\cn\
目录 0 2012-04-08 17:06 源代码\Snake\bin\cn\snake\
目录 0 2012-04-08 17:07 源代码\Snake\bin\cn\snake\controller\
文件 7430 2012-04-08 17:07 源代码\Snake\bin\cn\snake\controller\Controller.class
目录 0 2012-04-08 17:07 源代码\Snake\bin\cn\snake\entities\
文件 1908 2012-04-08 17:07 源代码\Snake\bin\cn\snake\entities\Food.class
文件 3921 2012-04-08 17:07 源代码\Snake\bin\cn\snake\entities\Ground.class
文件 1455 2012-04-08 17:07 源代码\Snake\bin\cn\snake\entities\Snake$SnakeDriver.class
文件 6317 2012-04-08 17:07 源代码\Snake\bin\cn\snake\entities\Snake.class
目录 0 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\
文件 1004 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\GameOptionPanel$1.class
文件 6685 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\GameOptionPanel.class
文件 1153 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 906 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 857 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1282 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1279 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1751 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1168 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1136 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1156 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1145 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1149 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
文件 1230 2012-04-08 17:07 源代码\Snake\bin\cn\snake\game\Mainfr
............此处省略33个文件信息
- 上一篇:Android项目中自定义顶部标题栏
- 下一篇:一个动物识别系统(java版)
相关资源
- 物流管理系统源码(含数据库)5624
- mysql数据处理,java用户登录处理
- jsp模拟酷狗官网源码(附数据库)
- 法律咨询信息系统(java+jsp+sqlserver)
- 一个完整的点餐微信小程序(附后台
- 基于 struts 的学生寝室管理系统的设计
- 煤矿安全管理系统(jsp源码+数据库脚
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- 基于JSP实现的美食餐饮管理系统(源
- 尚硅谷书城源码(仅附html页面)
- 都市供求信息网(源码+数据库+文档)
- 图书管理系统(源码+数据库+截图)
- 学生信息管理系统源码+mysql数据库
- javaweb网上购物系统源码(附数据库脚
- jsp+servlet+jdbc开发学生信息后台管理系
- JSP选课系统(源码+文档+数据库)
- 基于JSP的超市销售管理系统(源码+
- jsp宠物商店(源码+数据库)
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 毕业设计-医院人事管理系统(源码
- Vue + SpringBoot + MyBatis 音乐网站(源码
- jsp进销存管理系统(源码+数据库+文档
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- JSP考试网上报名考试系统(源码+数据
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
评论
共有 条评论