• 大小: 580KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-30
  • 语言: 其他
  • 标签:

资源简介

此代码对传智播客的贪吃蛇视频和代码做了分析和解释,可以更好的理解!

资源截图

代码片段和文件信息

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:36  传智播客版贪吃蛇游戏源代码\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\Mainframe$1.class

     文件        920  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$10.class

     文件       1366  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$11.class

     文件       1363  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$12.class

     文件       1877  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$13.class

     文件       1231  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$2.class

     文件       1199  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$3.class

     文件       1219  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$4.class

     文件       1208  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$5.class

     文件       1233  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$6.class

     文件       1314  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$7.class

     文件       1218  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$8.class

     文件        967  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe$9.class

     文件       7951  2008-03-20 11:52  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\bin\cn\itcast\snake\game\Mainframe.class

     文件        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-frame.html

     文件       1709  2008-03-20 11:56  传智播客版贪吃蛇游戏源代码\ITCastSnake1.0_final\doc\allclasses-noframe.html

............此处省略132个文件信息

评论

共有 条评论

相关资源