資源簡介
基于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版)
評論
共有 條評論