版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 信息科學(xué)與工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 題目: 小游戲程序程序開發(fā) </p><p> 課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定</p><p> 課程設(shè)計(jì)的任務(wù)和具體要求任務(wù):
2、1、利用本學(xué)期所學(xué)的知識(shí),設(shè)計(jì)并開發(fā)出一個(gè)手機(jī)游戲或手機(jī)應(yīng)用小系統(tǒng)。手機(jī)游戲類例如:貪吃蛇游戲、挖雷游戲、五子棋游戲等;應(yīng)用小系統(tǒng)類,例如:手機(jī)短信的收發(fā)、通訊錄系統(tǒng)等。2、要求界面美觀、功能較齊全;設(shè)計(jì)要求:1、開始顯示初始化游戲界面,請(qǐng)稍后正在加載。2、進(jìn)入游戲列表,請(qǐng)選擇你要玩的游戲,選擇好進(jìn)入游戲。3、開始玩游戲,進(jìn)行小游戲運(yùn)行指導(dǎo)教師簽字: 、 日期:
3、 </p><p> 指導(dǎo)教師評(píng)語成績(jī): 指導(dǎo)教師簽字: 日期: </p><p> 課程設(shè)計(jì)所需軟件、硬件等硬件:計(jì)算機(jī)、打印機(jī)軟件:KVM Ecipse、WTK2.5.2 Java ME</p><p> 課程設(shè)計(jì)進(jìn)度計(jì)劃</p><p>
4、起至日期工作內(nèi)容備注</p><p> 2012/5/1—2012/5/152012/5/15—2012/6/12012/6/1—2012/6/15確定程序編寫代碼撰寫設(shè)計(jì)書</p><p> 參考文獻(xiàn)、資料索引</p><p> 序號(hào)文獻(xiàn)、資料名稱編著者出版單位</p><p> 1、《基于Eclipse環(huán)境的J2ME應(yīng)用程序開發(fā)》 萬輝
5、 王軍@編著 清華大學(xué)出版社2、《J2ME應(yīng)用教程》 陳旭東,徐保民@編著.清華大學(xué)出版社3、《J2ME移動(dòng)設(shè)備程序設(shè)計(jì)》 胡虛懷 李換@編著.清華大學(xué)出版社.4、《J2ME開發(fā)精講》 詹建飛@編著.電子工業(yè)出版社.5、《J2ME技術(shù)開發(fā)與應(yīng)用》 李研 劉晶晶@編著.機(jī)械工業(yè)出版社.</p><p><b> 摘 要</b></p><p> J2ME平臺(tái)被認(rèn)
6、為是最杰出的手機(jī)游戲平臺(tái),它為開發(fā)者、設(shè)備制造商、網(wǎng)絡(luò)通信公司和消費(fèi)者廣泛接受。它有一些非常重要的特征對(duì)所有組織都有益。因?yàn)镴2ME應(yīng)用在不同設(shè)備上都是便攜式的,他們常??稍诰W(wǎng)絡(luò)上下載和執(zhí)行。</p><p> 本設(shè)計(jì)通過Alert和Gauge設(shè)計(jì)的進(jìn)度條,進(jìn)行加載游戲等待。</p><p> 通過用List設(shè)計(jì)一個(gè)游戲列表,進(jìn)行選擇游戲。</p><p>
7、上面的Alert、Form(Gauge)和List是Screen高級(jí)編程的代表,看出Screen都是全屏顯示的,對(duì)屏幕的顯示設(shè)計(jì)是離不開的。</p><p> 通過Canvas或gameCanvas才能畫到屏幕上,通過他們以及各種類庫來進(jìn)行設(shè)計(jì)貪吃蛇和掃雷游戲,最后編程實(shí)現(xiàn)了全過程。</p><p> 本游戲如我們手機(jī)上的小游戲差不多,比較人性化的,合理的設(shè)計(jì),由于本人能力有限時(shí)間有限
8、只能做的這樣,希望大家好好看看,通過本次實(shí)驗(yàn)設(shè)計(jì)可以吧高級(jí)編程和低級(jí)編程都進(jìn)行系統(tǒng)的掌握一下。</p><p><b> 關(guān)鍵詞:</b></p><p> J2ME 面向?qū)ο?Canvas gameCanvas Alert List Gauge</p><p><b> 目錄</b></p>
9、<p><b> 1、設(shè)計(jì)內(nèi)容3</b></p><p><b> 2、設(shè)計(jì)過程3</b></p><p> 2.1 設(shè)計(jì)方案的論證3</p><p> 2.2、界面設(shè)計(jì)3</p><p><b> 3、設(shè)計(jì)內(nèi)容6</b></p>
10、<p><b> 3.1程序代碼6</b></p><p> 3.1.1 MIDlet主程序代碼(gameCanvas)6</p><p> 3.1.3 掃雷游戲代碼(MineCanvas)同貪吃蛇類似16</p><p><b> 4、實(shí)現(xiàn)結(jié)果16</b></p><p&g
11、t; 4.1游戲加載框16</p><p> 4.2游戲選擇框17</p><p> 4.3貪吃蛇游戲18</p><p> 4.4 掃雷游戲19</p><p><b> 5、實(shí)驗(yàn)小結(jié)19</b></p><p><b> 1、設(shè)計(jì)內(nèi)容</b><
12、/p><p> 本設(shè)計(jì)是從設(shè)計(jì)界面開始的,從游戲的加載,在進(jìn)入游戲的選擇列表,你想玩那個(gè)游戲就玩那個(gè)游戲,給人們提供方便,貪吃蛇和掃雷是個(gè)老幼皆宜的小游戲,貪吃蛇游戲是用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻向上、向左、向右和向下操作,(控制鍵的實(shí)現(xiàn)是由鍵盤的方向鍵的消息函數(shù)實(shí)現(xiàn))遇到食物就進(jìn)行加長(zhǎng)蛇身,就這樣不斷的加長(zhǎng)。掃雷吧就是先設(shè)計(jì)個(gè)方格框有插旗、有數(shù)字、有雷,雷的出現(xiàn)是隨機(jī)的。</p><p>
13、;<b> 2、設(shè)計(jì)過程</b></p><p> 2.1 設(shè)計(jì)方案的論證</p><p> J2ME語言繼承了JAVA語言易學(xué)易用的特點(diǎn),特別適合于初學(xué)者學(xué)系統(tǒng)編程。隨著21世紀(jì)信息社會(huì)的到來,計(jì)算機(jī)在人們的工作和生活中的深入,要求我們?cè)絹碓蕉嗟嘏c計(jì)算機(jī)打交道,為了使用戶在繁忙的日程工作中得到放松,于是出現(xiàn)了各種各樣的休閑軟件,如聊天工具,游戲等等。通過這學(xué)期
14、來J2ME課程的學(xué)習(xí),我初步掌握了J2ME語言的最基本的知識(shí),于是老師的指導(dǎo)下動(dòng)手用J2ME編寫小游戲(貪吃蛇和掃雷)。</p><p> 游戲是用來給大家娛樂的,所以要能在使用的過程中給大家?guī)砜鞓罚蠹业钠?,激發(fā)大家的娛樂激情。從本游戲的從設(shè)計(jì)界面出發(fā),主要就是本設(shè)計(jì)是從設(shè)計(jì)界面開始的,從游戲的加載,在進(jìn)入游戲的選擇列表,你想玩那個(gè)游戲就玩那個(gè)游戲,給人們提供方便,貪吃蛇和掃雷是個(gè)老幼皆宜的小游戲,貪
15、吃蛇游戲是用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻向上、向左、向右和向下操作,(控制鍵的實(shí)現(xiàn)是由鍵盤的方向鍵的消息函數(shù)實(shí)現(xiàn))遇到食物就進(jìn)行加長(zhǎng)蛇身,就這樣不斷的加長(zhǎng)。掃雷吧就是先設(shè)計(jì)個(gè)方格框有插旗、有數(shù)字、有雷,雷的出現(xiàn)是隨機(jī)的。</p><p><b> 2.2、界面設(shè)計(jì)</b></p><p> 如圖1(代碼流程):</p><p> 如圖2(
16、界面流程圖):</p><p><b> 3、設(shè)計(jì)內(nèi)容</b></p><p><b> 3.1程序代碼</b></p><p> 3.1.1 MIDlet主程序代碼(gameCanvas)</p><p> import javax.microedition.lcdui.Alert;<
17、;/p><p> import javax.microedition.lcdui.AlertType;</p><p> import javax.microedition.lcdui.Choice;</p><p> import javax.microedition.lcdui.Command;</p><p> import jav
18、ax.microedition.lcdui.CommandListener;</p><p> import javax.microedition.lcdui.Display;</p><p> import javax.microedition.lcdui.Displayable;</p><p> import javax.microedition.lcd
19、ui.Form;</p><p> import javax.microedition.lcdui.Gauge;</p><p> import javax.microedition.lcdui.Image;</p><p> import javax.microedition.lcdui.Item;</p><p> import
20、javax.microedition.lcdui.ItemCommandListener;</p><p> import javax.microedition.lcdui.List;</p><p> import javax.microedition.lcdui.StringItem;</p><p> import javax.microedition.
21、lcdui.TextBox;</p><p> import javax.microedition.lcdui.TextField;</p><p> import javax.microedition.midlet.MIDlet;</p><p> import javax.microedition.midlet.MIDletStateChangeExcep
22、tion;</p><p> public class gameMIDlet extends MIDlet implements Runnable,CommandListener{</p><p><b> /**顯示*/</b></p><p> private Display display;</p><p>
23、 private SnakeCanvas snakecanvas;</p><p> private MineCanvas minecanvas;</p><p> public static gameMIDlet instance;</p><p><b> /**加載提示*/</b></p><p> p
24、rivate Alert alert;</p><p><b> /**加載條*/</b></p><p> private Gauge gauge;</p><p><b> /**數(shù)目列表*/</b></p><p> private List list;</p><
25、p> private int curgameIndex = 0;</p><p><b> /**初始時(shí)間*/</b></p><p> long firstTime;</p><p> private Image image;</p><p> private final Command cmdEnte
26、r = new Command("進(jìn)入",Command.OK,1);</p><p> private final Command cmdExit = new Command("退出",Command.EXIT,1);</p><p> private final Command cmdBack = new Command("返回&q
27、uot;,Command.BACK,1);</p><p><b> /**游戲名*/</b></p><p> private String[] bookName = {"貪吃蛇","掃雷","紙牌","推箱子"};</p><p> public game
28、MIDlet() {</p><p> // TODO Auto-generated constructor stub</p><p> display = Display.getDisplay(this);</p><p> alert = new Alert("游戲啟動(dòng)中",null,null,AlertType.INFO);</
29、p><p> gauge = new Gauge(null,false,5,1);</p><p> alert.setIndicator(gauge);</p><p> alert.setTimeout(6000);</p><p> firstTime = System.currentTimeMillis();</p>
30、<p> minecanvas= new MineCanvas();</p><p> snakecanvas=new SnakeCanvas();</p><p> image = createImage("/123.png");</p><p> list = new List("游戲名",Choice
31、.IMPLICIT,bookName,new Image[]{image,image});</p><p> list.addCommand(cmdEnter);</p><p> list.addCommand(cmdExit);</p><p> list.setCommandListener(this);</p><p> ne
32、w Thread(this).start();</p><p><b> }</b></p><p> private Image createImage(String file){</p><p> Image image = null;</p><p><b> try{</b><
33、/p><p> image = Image.createImage(file);</p><p> }catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p> return image;<
34、/p><p><b> }</b></p><p> protected void destroyApp(boolean arg0){</p><p> // TODO Auto-generated method stub</p><p><b> }</b></p><p&
35、gt; protected void pauseApp() {</p><p> // TODO Auto-generated method stub</p><p><b> }</b></p><p> protected void startApp(){</p><p> // TODO Auto-gen
36、erated method stub</p><p> display.setCurrent(alert);</p><p><b> }</b></p><p> public void exitApp(){</p><p><b> try {</b></p><p&
37、gt; destroyApp(true);</p><p> notifyDestroyed();</p><p> } catch (Exception e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p>
38、<p><b> }</b></p><p><b> }</b></p><p><b> /**</b></p><p><b> * 控制進(jìn)度提示</b></p><p><b> */</b></p
39、><p> public void run() {</p><p> // TODO Auto-generated method stub</p><p> while(true){</p><p> int time = (int)(System.currentTimeMillis() - firstTime);</p>
40、<p> gauge.setValue(time/1000);</p><p> if(time >= alert.getTimeout()){</p><p> //alert.setString("歡迎進(jìn)入游戲,請(qǐng)稍后");</p><p> //sleep(1000);</p><p>
41、 display.setCurrent(list);</p><p> alert.setIndicator(null);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>
42、<p><b> }</b></p><p><b> /**</b></p><p><b> * 各個(gè)窗體事件</b></p><p><b> */</b></p><p> public void commandAction(
43、Command command, Displayable displayable) {</p><p> // TODO Auto-generated method stub</p><p> if(command == cmdEnter){</p><p> if(displayable.equals(list)){</p><p>
44、 curgameIndex = list.getSelectedIndex();</p><p> if(curgameIndex==0){</p><p> display.setCurrent(snakecanvas);</p><p> }else if(curgameIndex==1){</p><p> display.s
45、etCurrent(minecanvas);</p><p> }else if(curgameIndex==2){}</p><p> }else if(curgameIndex==3){}</p><p> }else if(command == cmdExit){</p><p> notifyDestroyed();&
46、lt;/p><p> destroyApp(true);</p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> 3.1.2 貪吃蛇游戲代碼(SnakeCanvas)&
47、lt;/p><p> import java.util.Random;</p><p> import javax.microedition.lcdui.Canvas;</p><p> import javax.microedition.lcdui.Graphics;</p><p> public class SnakeCanvas
48、extends Canvas implements Runnable {</p><p> /**食物的左上角X坐標(biāo)*/</p><p> private int foodX;</p><p> /**食物的左上角Y坐標(biāo)*/</p><p> private int foodY;</p><p> /**食物
49、的顏色值*/</p><p> private int foodC;</p><p><b> /**貪吃蛇*/</b></p><p> private int[] snake = new int[200*3];</p><p> /**貪吃蛇食物寬度*/</p><p> priva
50、te final int SNAKE_W = 4;</p><p> /**貪吃蛇食物長(zhǎng)度*/</p><p> private final int SNAKE_H = 4;</p><p> /**貪吃蛇的身體長(zhǎng)度,即包含食物的個(gè)數(shù)*/</p><p> private int snakeNum;</p><p&
51、gt;<b> /**方向變量*/</b></p><p> private int direction;</p><p><b> /**方向上*/</b></p><p> private final int DIR_UP = 0;</p><p><b> /**方向下*/
52、</b></p><p> private final int DIR_DOWN = 1;</p><p><b> /**方向左*/</b></p><p> private final int DIR_LEFT = 2;</p><p><b> /**方向右*/</b>&l
53、t;/p><p> private final int DIR_RIGHT = 3;</p><p> /**Random對(duì)象,控制食物的隨機(jī)出現(xiàn)*/</p><p> Random random = new Random();</p><p> /**可選顏色值*/</p><p> private final
54、 int[] COLOR = {0xff0000,0x00ff00,0x0000ff,0xffff00,0xff00ff,0x00ffff,0xff000f};</p><p><b> /**線程對(duì)象*/</b></p><p> private Thread thread;</p><p> /**線程控制變量*/</p>
55、<p> private boolean isShow = true;</p><p> /**游戲是否退出控制變量*/</p><p> private boolean isExit = false;</p><p><b> /**屏幕寬*/</b></p><p> private int
56、SCREEN_W;</p><p><b> /**屏幕高*/</b></p><p> private int SCREEN_H;</p><p> public SnakeCanvas() {</p><p> // TODO Auto-generated constructor stub</p>
57、<p> /**獲取屏幕寬度和高度*/</p><p> SCREEN_W = this.getWidth();</p><p> SCREEN_H = this.getHeight();</p><p> //初始化貪吃蛇的長(zhǎng)度</p><p> snakeNum = 7;</p><p>
58、 for(int i = 0;i < snakeNum;i++){</p><p> snake[i*3+0] = 100 - SNAKE_W * i;</p><p> snake[i*3+1] = 40;</p><p> snake[i*3+2] = COLOR[i%7];</p><p><b> }</
59、b></p><p> //初始化貪吃蛇的移動(dòng)方向</p><p> direction = DIR_RIGHT;</p><p><b> //初始化食物坐標(biāo)</b></p><p> foodX = 100;</p><p> foodY = 100;</p>&
60、lt;p> foodC = 0xff;</p><p><b> //啟動(dòng)游戲線程</b></p><p> thread = new Thread(this);</p><p> thread.start();</p><p><b> }</b></p><p
61、> public void run() {</p><p> // TODO Auto-generated method stub</p><p> while(true){</p><p> //游戲邏輯控制循環(huán)體</p><p> while(isShow){</p><p> //獲取每一幀的開
62、始時(shí)間點(diǎn)</p><p> long st = System.currentTimeMillis();</p><p> //游戲主邏輯控制函數(shù)</p><p><b> main();</b></p><p><b> //刷新屏幕</b></p><p> re
63、paint();</p><p> serviceRepaints();</p><p> //獲取每一幀邏輯處理完后的時(shí)間點(diǎn)與開始時(shí)間點(diǎn)之間的時(shí)間差</p><p> int ct = (int)(System.currentTimeMillis() - st);</p><p> //設(shè)置游戲幀的睡眠時(shí)間</p>&
64、lt;p> if(ct < 300){</p><p><b> try{</b></p><p> Thread.sleep(300 - ct);</p><p> }catch(Exception e){</p><p> e.printStackTrace();</p><
65、p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //游戲退出控制</b></p><p> if(isExit){</p><p>
66、gameMIDlet.instance.exitApp();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> public void main(){</p><p&g
67、t; /**先判斷是否能吃到食物*/</p><p> //定義貪吃蛇下一步的位移量</p><p> int stepX = 0;</p><p> int stepY = 0;</p><p> //判斷方向,以便得到貪吃蛇下一步的位移量</p><p> switch(direction){</
68、p><p> case DIR_UP:</p><p> stepY = -SNAKE_H;</p><p><b> break;</b></p><p> case DIR_DOWN:</p><p> stepY = SNAKE_H;</p><p><b
69、> break;</b></p><p> case DIR_LEFT:</p><p> stepX = -SNAKE_W;</p><p><b> break;</b></p><p> case DIR_RIGHT:</p><p> stepX = SNAK
70、E_W;</p><p><b> break;</b></p><p><b> }</b></p><p> //得到貪吃蛇蛇頭下一步的位置</p><p> int newX = snake[0*3+0] + stepX;</p><p> int newY
71、= snake[0*3+1] + stepY;</p><p> //判斷下一步是否有食物,如果有則吞食,并隨機(jī)再在屏幕內(nèi),蛇身外生成新的食物</p><p> if(newX == foodX && newY == foodY){</p><p> snakeNum++;</p><p> for(int i=sna
72、keNum - 1; i > 0; i--)</p><p><b> {</b></p><p> snake[i*3+0] = snake[(i-1)*3+0];</p><p> snake[i*3+1] = snake[(i-1)*3+1];</p><p> snake[i*3+2] = snak
73、e[(i-1)*3+2];</p><p><b> }</b></p><p> snake[0*3+0] = foodX;</p><p> snake[0*3+1] = foodY;</p><p> snake[0*3+2] = foodC;</p><p> //食物被吃掉后需
74、要生成新的食物</p><p> makeFood();</p><p><b> }</b></p><p> /**判斷下一步是否超出屏幕而越界,或者碰到自身,游戲結(jié)束*/</p><p> if(isGameOver()){</p><p> isShow = false;<
75、/p><p> isExit = true;</p><p><b> return;</b></p><p><b> }</b></p><p> /**蛇身移動(dòng)過程*/</p><p> for(int i = snakeNum - 1;i > 0;i--)
76、{</p><p> snake[i*3+0] = snake[(i-1)*3+0];</p><p> snake[i*3+1] = snake[(i-1)*3+1];</p><p><b> }</b></p><p> //第一個(gè)單元格移動(dòng)</p><p> stepX = 0;
77、</p><p> stepY = 0;</p><p> switch(direction){</p><p> case DIR_UP:</p><p> stepY = -SNAKE_H;</p><p><b> break;</b></p><p>
78、case DIR_DOWN:</p><p> stepY = SNAKE_H;</p><p><b> break;</b></p><p> case DIR_LEFT:</p><p> stepX = -SNAKE_W;</p><p><b> break;<
79、/b></p><p> case DIR_RIGHT:</p><p> stepX = SNAKE_W;</p><p><b> break;</b></p><p><b> }</b></p><p> snake[0*3+0] += stepX;&
80、lt;/p><p> snake[0*3+1] += stepY;</p><p> if(snake[0*3+0]==0){</p><p> snake[0*3+0]=SCREEN_W - SNAKE_W;</p><p> }else if(snake[0*3+0]==SCREEN_W - SNAKE_W){</p>
81、<p> snake[0*3+0]=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> /**</b></p><p><b> *生成新的食物</b></p>&l
82、t;p><b> */</b></p><p> private void makeFood(){</p><p><b> //食物坐標(biāo)</b></p><p> foodX = Math.abs(random.nextInt() % (SCREEN_W - SNAKE_W + 1)) / SNAKE_W
83、* SNAKE_W;</p><p> foodY = Math.abs(random.nextInt() % (SCREEN_H - SNAKE_H + 1)) / SNAKE_H * SNAKE_H;</p><p><b> //食物顏色</b></p><p> foodC = COLOR[Math.abs(random.next
84、Int()%COLOR.length)];</p><p><b> }</b></p><p><b> /**</b></p><p> * 判斷游戲是否結(jié)束</p><p><b> * 結(jié)束條件:</b></p><p> *
85、 1、蛇頭超出邊界</p><p> * 2、蛇頭碰到自身</p><p><b> */</b></p><p> private boolean isGameOver(){</p><p><b> //邊界判別</b></p><p> //
86、 if(snake[0*3+0] < 0 || snake[0*3+0] > (SCREEN_W - SNAKE_W) ||</p><p> // snake[0*3+1] < 0 || snake[0*3+1] > (SCREEN_H - SNAKE_H)){</p><p> // retu
87、rn true;</p><p> // }</p><p><b> //碰到自身</b></p><p> for(int i = 4;i < snakeNum;i++){</p><p> if(snake[0*3+0] == snake[i*3+0]</p><p&
88、gt; && snake[0*3+1] == snake[i*3+1]){</p><p> return true;</p><p><b> }</b></p><p><b> }</b></p><p> return false;</p><p
89、><b> }</b></p><p><b> /**</b></p><p><b> * 繪制函數(shù)</b></p><p><b> */</b></p><p> protected void paint(Graphics g) {
90、</p><p> // TODO Auto-generated method stub</p><p><b> //屏幕擦除</b></p><p> g.setColor(0);</p><p> g.fillRect(0,0,SCREEN_W,SCREEN_H);</p><p>
91、<b> //繪制貪吃蛇</b></p><p> for(int i=0; i<snakeNum; i++){</p><p> drawSnake(g,snake[i*3+0],snake[i*3+1],snake[i*3+2]);</p><p><b> }</b></p><p&
92、gt;<b> //繪制食物</b></p><p> drawSnake(g,foodX,foodY,foodC);</p><p><b> }</b></p><p><b> /**</b></p><p> * 繪制貪吃蛇和食物</p><
93、;p> * @param g</p><p> * @param x</p><p> * @param y</p><p> * @param color</p><p><b> */</b></p><p> private void drawSnake(Graphics
94、g,int x,int y,int color){</p><p> g.setColor(0xffffff);</p><p> g.fillArc(x,y,SNAKE_W,SNAKE_H,0,360);</p><p> g.setColor(color);</p><p> g.fillArc(x+1,y+1,SNAKE_W-1
95、,SNAKE_H-1,0,360);</p><p><b> }</b></p><p><b> /**</b></p><p><b> * 事件處理</b></p><p><b> */</b></p><p>
96、 public void keyPressed(int keyCode){</p><p> int action = this.getGameAction(keyCode);</p><p><b> //改變方向</b></p><p> switch(action){</p><p><b> c
97、ase UP:</b></p><p> if(direction != DIR_DOWN){</p><p> direction = DIR_UP;</p><p><b> }</b></p><p><b> break;</b></p><p>
98、 case DOWN:</p><p> if(direction != DIR_UP){</p><p> direction = DIR_DOWN;</p><p><b> }</b></p><p><b> break;</b></p><p> cas
99、e LEFT:</p><p> if(direction != DIR_RIGHT){</p><p> direction = DIR_LEFT;</p><p><b> }</b></p><p><b> break;</b></p><p> case
100、RIGHT:</p><p> if(direction != DIR_LEFT){</p><p> direction = DIR_RIGHT;</p><p><b> }</b></p><p><b> break;</b></p><p> case F
101、IRE:</p><p><b> //暫停和繼續(xù)</b></p><p> isShow = !isShow;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }<
102、;/b></p><p><b> }</b></p><p> 3.1.3 掃雷游戲代碼(MineCanvas)同貪吃蛇類似</p><p><b> 4、實(shí)現(xiàn)結(jié)果</b></p><p><b> 4.1游戲加載框</b></p><p&g
103、t;<b> 4.2游戲選擇框</b></p><p><b> 4.3貪吃蛇游戲</b></p><p><b> 4.4 掃雷游戲</b></p><p><b> 5、實(shí)驗(yàn)小結(jié)</b></p><p> 于課程設(shè)計(jì)時(shí)間較短,所以該游戲還有許
104、多不盡如人意的地方,如游戲沒開始結(jié)束了,退出游戲不能存儲(chǔ)進(jìn)度等多方面問題。這些都有待進(jìn)一步改善,如在游戲中還可以更換背景音樂,以適合不同的玩家,在每通過一關(guān)可以給玩家播放一段flash,吸引玩家去挑戰(zhàn)極限,不斷提高玩家的興趣。</p><p> 課程設(shè)計(jì)已經(jīng)結(jié)束了,但在課程設(shè)計(jì)的這些體會(huì)要應(yīng)用到今后的日常學(xué)習(xí)中去。在新的學(xué)期,我覺得自己要在以下幾個(gè)方面加以注意:</p><p> 首先
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- j2me貪吃蛇游戲課程設(shè)計(jì)
- j2me手機(jī)游戲的開發(fā)-beckhamgoal
- 基于J2ME的手機(jī)游戲設(shè)計(jì)開發(fā).pdf
- 基于j2me平臺(tái)的手機(jī)游戲開發(fā)
- 基于j2me平臺(tái)的手機(jī)游戲開發(fā)
- 畢業(yè)設(shè)計(jì)---基于j2me的手機(jī)游戲開發(fā)
- 課程設(shè)計(jì)--- 貪吃蛇小游戲程序設(shè)計(jì)
- j2me飛機(jī)游戲(畢業(yè)設(shè)計(jì))
- 基于J2ME的手機(jī)游戲開發(fā)定稿.doc
- 基于J2ME的手機(jī)游戲開發(fā)定稿.doc
- 基于J2ME面向模式的游戲開發(fā).pdf
- 基于J2ME手機(jī)游戲開發(fā)模式研究.pdf
- 基于J2ME的手機(jī)游戲開發(fā)定稿.doc
- 基于J2ME的手機(jī)游戲的開發(fā)與設(shè)計(jì).pdf
- 基于J2ME平臺(tái)的手機(jī)應(yīng)用程序研究與開發(fā).pdf
- j2me游戲畢業(yè)論文
- j2me手機(jī)游戲設(shè)計(jì)綜述[文獻(xiàn)綜述]
- 基于J2ME的手機(jī)游戲設(shè)計(jì).pdf
- [jsp畢設(shè)]j2me彈球游戲設(shè)計(jì)
- 基于j2me的java游戲--坦克大戰(zhàn)的開發(fā)
評(píng)論
0/150
提交評(píng)論