资源简介
java版本贪吃蛇,效果很好,可以自行增强,学习入门的好例子
代码片段和文件信息
package cn.itcast.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.itcast.snake.entities.Food;
import cn.itcast.snake.entities.Ground;
import cn.itcast.snake.entities.Snake;
import cn.itcast.snake.listener.GameListener;
import cn.itcast.snake.listener.SnakeListener;
import cn.itcast.snake.util.Global;
import cn.itcast.snake.view.GamePanel;
/**
* 控制器
* 控制Ground Snake Food
* 负责游戏的逻辑
* 处理按键事件
*
* 实现了SnakeListener接口 可以处理Snake 触发的事件
* 方法 snakeEatFood() 处理蛇吃到食物后触发的 snakeEatFood事件 但什么也没做
*
*
* @version 1.0 01/01/08
*
* @author 汤阳光
*
*/
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;
}
/* 重
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2008-01-28 09:37 贪吃蛇游戏源代码\ITCastSnake1.0_final\.classpath
文件 387 2008-02-17 14:28 贪吃蛇游戏源代码\ITCastSnake1.0_final\.project
文件 7629 2008-03-20 11:55 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\controller\Controller.class
文件 1950 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\entities\Food.class
文件 3621 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\entities\Ground.class
文件 1539 2008-03-20 11:55 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\entities\Snake$SnakeDriver.class
文件 6408 2008-03-20 11:55 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\entities\Snake.class
文件 1053 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\GameOptionPanel$1.class
文件 6501 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\GameOptionPanel.class
文件 1216 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 920 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1366 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1363 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1877 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1231 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1199 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1219 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1208 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1233 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1314 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 1218 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 967 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 7951 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainfr
文件 218 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\listener\GameListener.class
文件 182 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\listener\SnakeListener.class
文件 3090 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\util\Global.class
文件 2397 2008-03-20 11:52 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\view\GamePanel.class
文件 1609 2008-01-28 09:46 贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\czbk.png
文件 1909 2008-03-20 11:56 贪吃蛇游戏源代码\ITCastSnake1.0_final\doc\allclasses-fr
文件 1709 2008-03-20 11:56 贪吃蛇游戏源代码\ITCastSnake1.0_final\doc\allclasses-nofr
............此处省略132个文件信息
相关资源
- shiro-all-1.4.0.jar
- 图书管理系统数据持久化
- 《Java程序性能优化:让你的Java程序更
- java制作工作证和调用斑马打印.rar
- java udp多人聊天室
-
org.springfr
amework.context-3.2.2.RELEASE.j - java下通过ajax调用Echarts案例
- java与plc通讯
- java开发的rpg游戏
- java任务管理系统
- 用Java中Swing实现满天星源码+文档
- java学生信息管理系统源代码
- JAVA时间工具类计算法定工作日工时等
- java开发走迷宫可视化源码程序
- Floyd算法-java实现
- java面向对象程序设计答案
- java课设-保存计算过程的计算器代码
- Java实验报告(房屋销售管理信息系统
- 商场销售管理系统 java netbeans
- 基于JAVA的安全的通讯软件源代码
- Java 音频wav等播放 循环 停止
- 网上排课系统 附带数据库可以运行
- 北大青鸟accp5.0java第六章理论加上机作
- 网络画板java源代码
- Apriori算法实现及实验报告
- Java 五子棋游戏毕业论文
- Java Cryptography Extension (JCE) 无限强度
- 原生JAVA读写PLC
- JAVA面向对象思维导图.xmind
- mysql -connection-java-5.0.8-bin.jar
评论
共有 条评论