資源簡(jiǎn)介
基于Java的貪吃蛇游戲源代碼,非常完整,匹配的畢業(yè)論文請(qǐng)看我上傳的另一個(gè)資源,非常詳細(xì)完整!

代碼片段和文件信息
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
?*?負(fù)責(zé)游戲的邏輯
?*?處理按鍵事件
?*?
?*?實(shí)現(xiàn)了SnakeListener接口?可以處理Snake?觸發(fā)的事件
?*?方法?snakeEatFood()?處理蛇吃到食物后觸發(fā)的?snakeEatFood事件?但什么也沒(méi)做
?*?
?*?
?*/
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;
/*?控制器監(jiān)聽器?*/
private?Set?listeners?=?new?HashSet();
/**
?*?處理按鍵事件
?*?接受按鍵?根據(jù)按鍵不同?發(fā)出不同的指令
?*?UP:?改變蛇的移動(dòng)方向?yàn)橄蛏?BR>
?*?DOWN:?改變蛇的移動(dòng)方向?yàn)橄蛳?BR>
?*?LEFT:?改變蛇的移動(dòng)方向?yàn)橄蜃?
?*?RIGHT:?改變蛇的移動(dòng)方向?yàn)橄蛴?BR>
?*?SPACE:?暫停/繼續(xù)
?*?PAGE?UP:?加快蛇的移動(dòng)速度
?*?PAGE?DOWN:?減慢蛇的移動(dòng)速度
?*?Y:?重新開始游戲
?*/
public?void?keyPressed(KeyEvent?e)?{
if?(e.getKeyCode()?!=?KeyEvent.VK_Y?&&?!playing)
return;
//?TODO?Auto-generated?method?stub
/*?根據(jù)按鍵不同?讓蛇改變不同的方向?*/
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論