版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> JAVAME程序設計</p><p><b> 課程設計說明書</b></p><p> 成績: </p><p> 題 目:手機推箱子游戲</p><p> 學 院:計算機與信息工程學院</p><p> 專 業(yè):計算機科學與技
2、術</p><p> 班 級:</p><p> 姓 名:</p><p> 學 號:</p><p> 起止時間:2013-6-24—2013-7-5</p><p><b> 課程設計任務書</b></p><p> 一、設計題目:《手機推箱子游戲
3、》</p><p> 二、設計內容:推箱子是一款備受玩家喜愛的經典游戲。本設計針對推箱子實現了新游戲,選關,恭喜過關,繼續(xù)或重玩等過程??梢郧宄难菔靖鱾€畫面的切換和一些游戲開發(fā)的類庫。</p><p><b> 三、設計要求:</b></p><p> 1、開始顯示歡迎界面,然后是游戲界面,主界面顯示各種鍵的功能以及菜單-新游戲和選關。
4、</p><p> 2、開始玩游戲,如果贏了可進入下一關或重來。采用確定和取消來實現以上功能。</p><p> 3、如果選關,則出現選關界面,按確定開始選關,取消則返回初始化界面。</p><p><b> 四、工作計劃:</b></p><p><b> 目 錄</b></p&g
5、t;<p> 1、程序的算法及說明2</p><p> 1.1、程序算法2</p><p> 1.2、程序的使用方法2</p><p> 2、程序的項目結構及說明5</p><p> 3、程序運行與發(fā)布6</p><p><b> 3.1歡迎界面6</b>&l
6、t;/p><p><b> 3.2主界面6</b></p><p> 3.3 游戲界面7</p><p><b> 3.4選關界面8</b></p><p><b> 4、總結8</b></p><p><b> 5、參考文獻9
7、</b></p><p> 附錄:程序源代碼10</p><p> 1、程序的算法及說明</p><p><b> 1.1、程序算法</b></p><p> 游戲規(guī)則:推箱子游戲的目的是用最少的步數把所有的箱子都推到目標位置。在游戲中,箱子只能推動而不能拉動。操作者通過操作人物左右上下的移動來推動
8、箱子。一次只能推動一個箱子,推一次就記做一步。注意不能把箱子推到死角,否則游戲將不能繼續(xù),此時建議重新玩一次。如果成功將箱子推到指定位置,屏幕會出現提示,此時可進入下一關繼續(xù)游戲。本游戲共40關,游戲者可隨意選關,每關的難易程度不同,越往后障礙物越多,地圖越復雜進行游戲越費腦力。</p><p> 1.2、程序的使用方法</p><p> 1.開始顯示歡迎界面,歡迎界面顯示了游戲制作者
9、的主要信息,然后自動跳轉到游戲界面。</p><p> 2. 主界面中顯示各種鍵的功能以及菜單-新游戲和選關。手機上下左右鍵分別控制人物上、下、左、右移動。手機上中間的按鈕即是“確定”鍵?!?、3”數字鍵可控制游戲進入上一關節(jié)和下一關節(jié)。</p><p> 3.如果選關,則出現選關界面,按確定開始選關,進入游戲界面,取消則返回主界面。</p><p> 4.開
10、始玩游戲,將箱子推到指定位置即可進入下一關。也可以重來游戲。采用確定和取消來實現以上功能。</p><p><b> 程序流程圖如下:</b></p><p><b> 圖 1 程序流程圖</b></p><p><b> 系統(tǒng)結構框圖如下:</b></p><p>
11、圖 2 系統(tǒng)結構框圖</p><p> 2、程序的項目結構及說明</p><p> 本程序的項目結構如圖3所示</p><p> 圖3 手機游戲推箱子目結構圖</p><p> 本程序的JAVA源文件說明如下:</p><p> 本程序共AllMap.java,Continue.java, GameChoos
12、e.java, GameMain.java, GameMidlet.java, ImageAction.java, Map.java,FlashScreen.java,8個JAVA源文件:</p><p> AllMap.java:設計了所有推箱子的地圖數組;</p><p> Continue.java:游戲是否繼續(xù);</p><p> GameChoose
13、.java:選關;</p><p> GameMain.java:主游戲進入游戲狀態(tài); </p><p> GameMidlet.java:該文件是MIDlet父類的子類;</p><p> ImageAction.java;圖片運行及顯示;</p><p> FlashScreen.java:閃屏;</p><p
14、> Map.java:設置地圖長,寬,高等參數及游戲角色; </p><p><b> 3、程序運行與發(fā)布</b></p><p><b> 3.1歡迎界面</b></p><p> 歡迎界面顯示了程序第一個屏幕,歡迎界面如圖4所示。 </p><p><b>
15、圖4 歡迎界面</b></p><p><b> 3.2主界面</b></p><p> 進入主程序界面后可根據界面中的提示選擇新游戲或選關,主界面如圖5所示。</p><p><b> 圖5 程序主界面</b></p><p><b> 3.3 游戲界面</
16、b></p><p> 開始玩游戲,如果贏了可進入下一關或重來。采用確定和取消來實現以上功能。</p><p> 圖6 開始游戲界面 圖7 過關出現的界面</p><p><b> 3.4選關界面</b></p><p> 可以在方括號內填取1-40的數字進行
17、選關,確定后,進入相應的游戲界面。</p><p><b> 圖8選關界面</b></p><p><b> 4、總結</b></p><p> 在本次課程設計過程中,為努力做到最好本人做了很多工作。設計前從各方面考慮選定了手機游戲推箱子,選定題目后,通過網上搜索等途徑尋找了一些資料方便設計。盡管如此,在設計時還是遇
18、到很多問題。起初很慌亂,但是在老師同學的幫助下,得到了解決。隨后便逐漸的適應了這一過程,也慢慢摸索到了一些解決方法和途徑。很辛苦,但是當程序能夠順利運行后非常開心。</p><p> 推箱子游戲有不足之處:沒有實現撤銷功能—就是說在意識到自己放錯位置之后,不能返回了。而且只有過關才能選擇繼續(xù)或重玩,輸了就不能重玩。這是本次設計的遺憾之處,但是通過本次設計,本人對JAVAME有了更深層次的理解和認識。對其中的很多
19、類庫以及很多方法都更為了解與掌握。總之收益良多,這次設計為本人以后更深入的學習JAVA奠定了基礎,也提高了自身動手實踐能力。</p><p><b> 5、參考文獻</b></p><p> [1] 崔尚志. Mobile手機應用開發(fā).機械工業(yè)出版社.1989:60-98</p><p> [2] 張強,陸文華. J2ME手機開發(fā)入門.1
20、993,29(6):263-268</p><p> [3] 王夢瑤. Windows Mobile平臺應用與開發(fā).清華大學出版社.1992:8-13</p><p><b> 附錄:程序源代碼</b></p><p><b> 部分主要代碼:</b></p><p><b> /
21、*</b></p><p> * GameMidlet.java</p><p><b> */</b></p><p> package gamepackage;</p><p> import javax.microedition.midlet.*;</p><p> i
22、mport javax.microedition.lcdui.*;</p><p> public class GameMidlet extends MIDlet{</p><p> //繼承MIDlet類的GameMidlet</p><p> private Display display=null;</p><p> priva
23、te GameChoose choice=null;</p><p> private FlashScreen flashscreen; //聲明閃屏畫面對象</p><p> public GameMidlet() {</p><p> choice=new GameChoose(this);</p><p> display=
24、Display.getDisplay(this);</p><p> //要使組件能在屏幕上顯示 }</p><p> public void startApp(){</p><p> // display.setCurrent(choice);//把choice設置為當前界面</p><p><b> }</b>
25、;</p><p> public void pauseApp(){</p><p><b> //暫停}</b></p><p> public void play(Displayable displayable){</p><p> display.setCurrent(displayable);// 把di
26、splayable設置為當前界面</p><p><b> }</b></p><p> public void destroyApp(boolean unconditional){ //銷毀}</p><p> public void loadFlashScreen(){</p><p> flashscree
27、n=new FlashScreen(this); //創(chuàng)建閃屏</p><p> display.setCurrent(flashscreen); //設置閃屏畫面為當前顯示畫面</p><p><b> }</b></p><p> public void FlashScreen(){</p><p>
28、 display.setCurrent(choice);</p><p><b> }}}</b></p><p> /* GameMain.java</p><p><b> */</b></p><p> package gamepackage;</p><p>
29、; import javax.microedition.lcdui.*;</p><p> import javax.microedition.lcdui.game.*;</p><p> public class GameMain extends GameCanvas implements Runnable{</p><p> private boolea
30、n runningFlag=true;</p><p> private boolean cancel=false;</p><p> private int index;</p><p> private GameChoose choice=null;</p><p> private Map map;</p><
31、;p> private Graphics g;</p><p> private Continue con;</p><p> public GameMain(GameChoose choice){</p><p> this(choice,0); }</p><p> public GameMain(GameChoose c
32、hoice,int index) {</p><p> super(false);</p><p> g=getGraphics();</p><p> map=new Map(this,g,index);</p><p> this.choice=choice;</p><p> this.index=in
33、dex;</p><p> con=new Continue();}</p><p> public void stop(){</p><p> runningFlag=false; }</p><p> public void commandAction(Command cmd,Displayable displayable)
34、{</p><p> public void start(){</p><p> Thread thread=new Thread(this);</p><p> thread.start(); }</p><p> public void keyPressed(int keyCode){</p><p>
35、int key=getGameAction(keyCode);</p><p> if(map.isFinish()){</p><p> switch(key){</p><p> case GameCanvas.LEFT:</p><p> case GameCanvas.RIGHT:</p><p>
36、if(con.ok==true){</p><p> con.ok=false;</p><p><b> }else</b></p><p> { con.ok=true; }</p><p><b> break;</b></p><p> case GameC
37、anvas.FIRE:</p><p> if(con.ok==true){</p><p><b> index++;</b></p><p> if(index==42){</p><p> index=0;} }</p><p> con.ok=true;</p>&
38、lt;p> map.initMap(index);</p><p><b> break;</b></p><p><b> default:</b></p><p> if(keyCode==-7){</p><p><b> stop()}}</b><
39、/p><p><b> }else{</b></p><p> if(cancel==false){</p><p> switch(key){</p><p> case GameCanvas.DOWN:</p><p> map.getKey(3);</p><p&g
40、t;<b> break;</b></p><p> case GameCanvas.UP:</p><p> map.getKey(1);</p><p><b> break;</b></p><p> case GameCanvas.LEFT:</p><p>
41、; map.getKey(2);</p><p><b> break;</b></p><p> case GameCanvas.RIGHT:</p><p> map.getKey(4);</p><p><b> break;</b></p><p><
42、b> default:</b></p><p> switch(keyCode){</p><p><b> case 49:</b></p><p><b> index--;</b></p><p> if(index==-1){</p><p&g
43、t; index=41; }</p><p> map.initMap(index);</p><p><b> break;</b></p><p><b> case 51:</b></p><p><b> index++;</b></p><
44、;p> if(index==42){</p><p> index=0; }</p><p> map.initMap(index);</p><p><b> break;</b></p><p><b> case -7:</b></p><p> ca
45、ncel=true;</p><p> break; } }</p><p><b> }else{</b></p><p> switch(key){</p><p> case GameCanvas.LEFT:</p><p> case GameCanvas.RIGHT:</
46、p><p> if(con.ok2==true){</p><p> con.ok2=false;</p><p><b> }else{</b></p><p> con.ok2=true; }</p><p><b> break;</b></p>&
47、lt;p> case GameCanvas.FIRE:</p><p> if(con.ok2==true){</p><p><b> stop();</b></p><p><b> }else{</b></p><p> cancel=false; }</p>&
48、lt;p> con.ok2=true;</p><p> break; } } }}</p><p> private void setBackground(){</p><p> g.setColor(0x6A4055);</p><p> g.fillRect(0,0, getWidth(),getHeight());&l
49、t;/p><p> g.setColor(0xF89433);</p><p> g.drawLine(0,20,getWidth(),20); </p><p> g.drawString("你正在攻克第"+(index+1)+"關",getWidth()/2,18, Graphics.HCENTER|Graphics.B
50、OTTOM);</p><p> g.drawRect(0, 0, getWidth()-2, getHeight()-3);</p><p> g.drawRect(1,1, getWidth()-3, getHeight()-4); }</p><p> public void run(){ </p><p> while(ru
51、nningFlag){</p><p> if(map.isFinish()){</p><p> con.paint(g);</p><p><b> }else{</b></p><p> if(cancel==false){</p><p> setBackground();<
52、;/p><p> map.paint();</p><p><b> }else{</b></p><p> con.paint1(g); } }</p><p> flushGraphics();</p><p><b> try{</b></p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 推箱子游戲課程設計
- 推箱子游戲課程設計
- c語言課程設計--推箱子游戲
- c語言課程設計--推箱子游戲
- java課程設計--經典推箱子趣味游戲設計與實現
- 推箱子c課程設計報告
- 匯編語言推箱子課程設計
- c++推箱子課程設計報告
- 《c語言程序設計》課程設計推箱子
- java實現推箱子游戲
- java課程設計--手機游戲
- 推箱子小游戲1
- 推箱子小游戲2
- 基于java的推箱子游戲
- 基于java的推箱子游戲設計與實現
- 基于j2me手機推箱子游戲的設計與實現[開題報告]
- 推箱子小游戲-項目總結.doc
- 推箱子小游戲-項目總結.doc
- 基于j2me手機推箱子游戲的設計與實現[畢業(yè)論文]
- 基于android的推箱子游戲設計畢業(yè)論文
評論
0/150
提交評論