版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 信息科學(xué)與工程學(xué)院課程設(shè)計(jì)任務(wù)書</p><p> 題目: J2ME貪吃蛇游戲 </p><p> 學(xué) 生1: </p><p> 學(xué) 生2
2、 </p><p> 學(xué) 生3 </p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 課 程: Java ME 程序設(shè)計(jì)
3、 </p><p> 指導(dǎo)教師 職稱: 講 師 </p><p> 完成時(shí)間: 2013年 5 月----2013 年 6月</p><p> 課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定</p><p><b> 目 錄</b></p><
4、;p><b> 1.概述1</b></p><p><b> 1.1開發(fā)背景1</b></p><p><b> 1.2開發(fā)目的1</b></p><p> 1.3開發(fā)平臺(tái)與技術(shù)概述1</p><p> 1.3.1 J2ME簡(jiǎn)介1</p>
5、<p> 1.3.2 WTK、ECLIPSE的介紹2</p><p><b> 2.研究?jī)?nèi)容3</b></p><p> 3.游戲總體設(shè)計(jì)4</p><p> 3.1貪吃蛇游戲的規(guī)則簡(jiǎn)介4</p><p> 3.2貪吃蛇游戲操作流程4</p><p> 4.游戲詳
6、細(xì)設(shè)計(jì)6</p><p><b> 4.1繪制畫布6</b></p><p> 4.2蛇吃食物的設(shè)計(jì)7</p><p> 4.3蛇碰壁和碰到自身的處理8</p><p><b> 5.總結(jié)12</b></p><p><b> 1.概述</
7、b></p><p><b> 1.1開發(fā)背景</b></p><p> 近年來(lái)科學(xué)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)技術(shù)已近慢慢的向微型化、便攜化等方向發(fā)展。如今,人們對(duì)于嵌入式的研究的深入,誕生了各種基于多功能操作系統(tǒng)的手機(jī),使得這些手機(jī)上可以安裝各種各樣的軟件,實(shí)現(xiàn)功能和性能上的擴(kuò)展和提高。目前大部分手機(jī)分為智能手機(jī)(SmartPhone)和非智能手機(jī)。</
8、p><p> 隨著移動(dòng)通信技術(shù)的發(fā)展和無(wú)線數(shù)據(jù)業(yè)務(wù)的進(jìn)步以及人們對(duì)移動(dòng)傳播方式的日趨依賴,無(wú)線終端在人們?nèi)粘I钪械氖褂靡仓饾u得到普及,手機(jī)已被賦予了除通話以外的其他許多功能。研究發(fā)現(xiàn),在700 名受訪對(duì)象中,60%的人會(huì)在家中玩手機(jī)游戲,而且其中 60%每天不止玩一次,每天的時(shí)間在 15 到 20 分鐘。而諾基亞做的一項(xiàng)研究發(fā)現(xiàn),玩家玩手機(jī)游戲的時(shí)間平均為 28 分鐘。。種種調(diào)查數(shù)據(jù)可以證明全世界手機(jī)游戲市場(chǎng)的繁
9、榮,如今沒(méi)有人會(huì)懷疑手機(jī)游戲的美好未來(lái),全新的手機(jī)游戲領(lǐng)域已逐漸聚焦了眾多軟件開發(fā)商的目光。手機(jī)游戲的市場(chǎng)空間進(jìn)一步增大。在日本以及韓國(guó),手機(jī)游戲已經(jīng)貢獻(xiàn)了大筆收;美國(guó)以及歐洲市場(chǎng)同樣很樂(lè)觀;而在南美洲以及其他國(guó)家和地區(qū),市場(chǎng)規(guī)模也在不斷擴(kuò)大。</p><p><b> 1.2開發(fā)目的</b></p><p> 以J2ME為開發(fā)平臺(tái),利用Java提供的強(qiáng)大工具,不
10、但可以在手機(jī)上實(shí)現(xiàn)靜態(tài)HTML技術(shù)所無(wú)法實(shí)現(xiàn)的計(jì)算處理、數(shù)據(jù)存儲(chǔ)、與服務(wù)器的通信等功能,而且能夠開發(fā)各種手機(jī)游戲。本文在介紹J2ME及其體系結(jié)構(gòu)的基礎(chǔ)上,以貪吃蛇游戲?yàn)閷?shí)例,描述了借助J2ME的MIDlet類庫(kù)開發(fā)手機(jī)游戲的全過(guò)程。</p><p> 1.3開發(fā)平臺(tái)與技術(shù)概述</p><p> 1.3.1J2ME簡(jiǎn)介</p><p> 現(xiàn)在JAVA-JAVA2
11、 Platform大致可分為J2SE、J2EE、J2ME三類。J2SE為JAVA-JAVA2 Platform 的標(biāo)準(zhǔn)版,通常在PC上使用的JAVA。J2EE是在J2SE的API上,擴(kuò)展了給企業(yè)使用EJB與Servlet等主要使用在服務(wù)器上的功能。而J2ME則是面向家電和通信工具等微小設(shè)備。</p><p> J2ME的目標(biāo)是微小設(shè)備,這類設(shè)備有許多種類,在這些設(shè)備的J2ME當(dāng)中,定義了CDC(Connecte
12、d Device Configuration),CLDC(Connected Limited Device Configuration)這兩個(gè)Configuration。</p><p> CDC是以能用在個(gè)人網(wǎng)關(guān)、下一代移動(dòng)電話、PDA(個(gè)人數(shù)字助理)、家電設(shè)備、POS終端、車輛導(dǎo)航系統(tǒng)等上運(yùn)行為前提設(shè)計(jì)出來(lái)的。CLDC,是以能使用在移動(dòng)電話、PDA(個(gè)人數(shù)字助理)、家電設(shè)備、POS終端等上面為前提設(shè)計(jì)出來(lái)的
13、。</p><p> 1.3.2 WTK、ECLIPSE的介紹</p><p> (1)WTK 的全稱是Sun J2ME Wireless Toolkit —— Sun的無(wú)線開發(fā)工具包。這一工具包的設(shè)計(jì)目的是為了幫助開發(fā)人員簡(jiǎn)化j2me的開發(fā)過(guò)程。使用其中的工具可以開發(fā)與 Java Technology for the Wireless Industry (JTWI, JSR 185)
14、 規(guī)范兼容的設(shè)備上運(yùn)行的j2me 應(yīng)用程序。該工具箱包含了完整的生成工具、實(shí)用程序以及設(shè)備仿真器。到本文寫作時(shí)為止可以獲取有四個(gè)版本,分別是1.0.4, 2.0, 2.1和2.2。每個(gè)版本都包括英語(yǔ),日語(yǔ),簡(jiǎn)體中文,繁體中文4個(gè)語(yǔ)種包。</p><p> WTK是Sun提供的一個(gè)開發(fā)工具包。目前各大手機(jī)廠商往往把WTK經(jīng)過(guò)自身的簡(jiǎn)化與改裝,推出適合自身產(chǎn)品,如SonyEricsson,Nokia Develop
15、er’s suit等,都屬于此種類型;而通過(guò)JBuilder, Eclipse等IDE,J2ME開發(fā)包工具可以被綁定在這些集成開發(fā)環(huán)境中,進(jìn)一步提高開發(fā)效率。</p><p> (2)Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java De
16、velopment Tools,JDT)。</p><p> Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來(lái)支持插件開發(fā),E
17、clipse Platform則是一個(gè)開放的可擴(kuò)展IDE,提供了一個(gè)通用的開發(fā)平臺(tái)。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。</p><p><b> 2.研究?jī)?nèi)容</b></p><p> 本課題研究的是基于J2ME的手機(jī)貪吃蛇游戲,利用EclipseIDE工具和Sun Java ME SDK 3.0,JAVA語(yǔ)法和J2ME系統(tǒng)的API來(lái)實(shí)現(xiàn)。</
18、p><p><b> 主要研究的對(duì)象是:</b></p><p> 1.面向?qū)ο蟮木幊碳记桑?lt;/p><p> 2.J2ME的低級(jí)、高級(jí)界面的開發(fā);</p><p> 3.J2ME內(nèi)專門游戲開發(fā)包Game包的使用;</p><p> 4.多線程技術(shù)的應(yīng)用。</p><p&
19、gt;<b> 3.游戲總體設(shè)計(jì)</b></p><p> 3.1貪吃蛇游戲的規(guī)則簡(jiǎn)介</p><p> 在貪吃蛇游戲中,玩家操作由小方塊連接而成的蛇,去吃隨機(jī)散落在畫面內(nèi)的小方塊,每吃一塊就增加一小方塊長(zhǎng)度,要是撞自己的尾,就屬于失敗,如無(wú)失敗則直到通關(guān)為止。在屏幕范圍內(nèi),玩家通過(guò)操作方向鍵來(lái)控制蛇的運(yùn)動(dòng)方向。</p><p> 3.
20、2貪吃蛇游戲操作流程</p><p> 用戶在啟動(dòng)MIDlet后,即進(jìn)入游戲主畫面,就可以開始玩游戲。游戲初始界面如圖3-1初始界面所示。</p><p><b> 圖3-1初始界面</b></p><p><b> 4.游戲詳細(xì)設(shè)計(jì)</b></p><p><b> 4.1繪制畫
21、布</b></p><p> MIDP的游戲設(shè)計(jì),本質(zhì)上就是用一個(gè)線程或者定時(shí)器產(chǎn)生重繪事件,用線程和用戶輸入改變游戲狀態(tài)。這個(gè)游戲也不例外,啟動(dòng)MIDlet后,就立即生成一個(gè)重繪線程,該線程每隔50ms繪制一次屏幕。游戲畫布是一個(gè)CommandListener,可以接受用戶鍵盤命令,控制蛇的左移,右移,下移,上移。其代碼如下:</p><p> protected voi
22、d paint(Graphics g) {</p><p><b> //屏幕擦除</b></p><p> g.setColor(0);</p><p> g.fillRect(0,0,SCREEN_W,SCREEN_H);</p><p><b> //繪制貪吃蛇</b></p&g
23、t;<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><b> //繪制食物</b></p
24、><p> drawSnake(g,foodX,foodY,foodC);</p><p><b> }</b></p><p> // 繪制貪吃蛇和食物</p><p> private void drawSnake(Graphics g,int x,int y,int color){</p><
25、;p> g.setColor(0xffffff);</p><p> g.fillRect(x,y,SNAKE_W,SNAKE_H);</p><p> g.setColor(color);</p><p> g.fillRect(x+1,y+1,SNAKE_W-1,SNAKE_H-1);</p><p><b>
26、}</b></p><p><b> //事件處理</b></p><p> public void keyPressed(int keyCode){</p><p> int action = this.getGameAction(keyCode);</p><p><b> //改變方向
27、</b></p><p> switch(action){</p><p><b> case UP:</b></p><p> if(direction != DIR_DOWN){</p><p> direction = DIR_UP;</p><p><b>
28、 } break;</b></p><p> case DOWN:</p><p> if(direction != DIR_UP){</p><p> direction = DIR_DOWN;</p><p><b> } break;</b></p><p> case
29、 LEFT:</p><p> if(direction != DIR_RIGHT){</p><p> direction = DIR_LEFT;</p><p><b> }break;</b></p><p> case RIGHT:</p><p> if(direction !
30、= DIR_LEFT){</p><p> direction = DIR_RIGHT;</p><p><b> }break;</b></p><p> case FIRE:</p><p><b> //暫停和繼續(xù)</b></p><p> isShow =
31、!isShow;</p><p><b> break;}</b></p><p> 4.2蛇吃食物的設(shè)計(jì)</p><p> 貪吃蛇最初由1個(gè)小正方形組成,小正方形是蛇的身體和游戲容器的組成部分。食物也由一塊小正方形組成,并且隨機(jī)散落在游戲框圖的區(qū)域內(nèi),待玩家操作游戲完成一個(gè)任務(wù)后面,再出現(xiàn)下個(gè)食物,小蛇每吃一個(gè)食物就增加一個(gè)長(zhǎng)度。實(shí)現(xiàn)代
32、碼如下:</p><p> //判斷下一步是否有食物,如果有則吞食,并隨機(jī)再在屏幕內(nèi),蛇身外生成新的食物</p><p> if(newX == foodX && newY == foodY){</p><p> snakeNum++;</p><p> for(int i=snakeNum - 1; i > 0
33、; i--)</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] = snake[(i-1)*3+2]; }</p><p> snake[0*3+0] = foodX;
34、</p><p> snake[0*3+1] = foodY;</p><p> snake[0*3+2] = foodC;</p><p> //食物被吃掉后需要生成新的食物</p><p> makeFood();}</p><p><b> //生成新的食物</b></p&g
35、t;<p> private void makeFood(){</p><p><b> //食物坐標(biāo)</b></p><p> foodX = Math.abs(random.nextInt() % (SCREEN_W - SNAKE_W + 1)) / SNAKE_W * SNAKE_W;</p><p> foodY
36、 = Math.abs(random.nextInt() % (SCREEN_H - SNAKE_H + 1)) / SNAKE_H * SNAKE_H;</p><p><b> //食物顏色</b></p><p> foodC = COLOR[Math.abs(random.nextInt()%COLOR.length)];}</p><
37、p> 4.3蛇碰壁和碰到自身的處理</p><p> ?。?)在貪吃蛇碰到四壁時(shí),它應(yīng)該從對(duì)應(yīng)的另一壁出現(xiàn),如圖4-3 貪吃蛇碰壁所示。</p><p> 圖4-3 貪吃蛇碰壁</p><p> ?。?)貪吃蛇碰到自身,該游戲即結(jié)束,如圖4-4 游戲結(jié)束所示</p><p><b> 圖4-4 游戲結(jié)束</b>
38、;</p><p> 實(shí)現(xiàn)游戲結(jié)束的代碼如下:</p><p> if(isGameOver()){</p><p> isShow = false;</p><p> isExit = true;</p><p><b> return;</b></p><p>
39、;<b> }</b></p><p> private boolean isGameOver(){</p><p><b> //碰到自身</b></p><p> for(int i = 4;i < snakeNum;i++){</p><p> if(snake[0*3+0]
40、== snake[i*3+0]</p><p> && snake[0*3+1] == snake[i*3+1]){</p><p> return true;</p><p><b> } }</b></p><p> return false; }</p><p&g
41、t;<b> 5.總結(jié)</b></p><p> 通過(guò)本次J2ME手機(jī)游戲設(shè)計(jì),讓我更深刻的了解程序設(shè)計(jì)的基本思想,鞏固了J2ME程序設(shè)計(jì)的基本知識(shí)。本次課程設(shè)計(jì)所開發(fā)的手機(jī)游戲,實(shí)現(xiàn)了手機(jī)游戲的一些基本和必需的功能。但游戲功能還存在著很多不足,首先,對(duì)游戲的動(dòng)畫設(shè)計(jì)不夠熟悉,技巧性不強(qiáng),界面的設(shè)置也不夠美觀。這些對(duì)于玩家來(lái)說(shuō)是非常重要,將直接決定本游戲的生存能力。其次,有些功能不能實(shí)現(xiàn)
42、。。如游戲的界面設(shè)置,游戲動(dòng)畫的設(shè)置,游戲的保存和游戲紀(jì)錄的保存,游戲的開始和暫停等功能這次游戲的功能沒(méi)能做到十全十美,是由于自身能力的不足和時(shí)間的限制,沒(méi)有對(duì)游戲的開發(fā)進(jìn)行進(jìn)一步研究,還有很多地方需要改進(jìn)。</p><p> 在游戲開發(fā)的過(guò)程中,我們遇到了各種各樣的問(wèn)題和錯(cuò)誤。但面對(duì)種種問(wèn)題和困難,還是得想盡一切辦法去解決?;蚴侨ゾW(wǎng)上查資料,或是想其他同學(xué)請(qǐng)教,或是互相討論,或是查閱相關(guān)書籍。現(xiàn)在,一個(gè)比較完
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- -java-j2me貪吃蛇游戲的設(shè)計(jì)
- java貪吃蛇游戲 課程設(shè)計(jì)
- c語(yǔ)言貪吃蛇游戲課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--貪吃蛇游戲
- qt課程設(shè)計(jì)--貪吃蛇游戲設(shè)計(jì)
- 貪吃蛇游戲的實(shí)現(xiàn)課程設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告貪吃蛇游戲
- 貪吃蛇課程設(shè)計(jì)
- java課程設(shè)計(jì)---java設(shè)計(jì)貪吃蛇游戲
- 貪吃蛇課程設(shè)計(jì)
- 貪吃蛇課程設(shè)計(jì)
- 課程設(shè)計(jì)--安卓手機(jī)游戲---貪吃蛇
- 貪吃蛇java課程設(shè)計(jì)--貪吃蛇程序設(shè)計(jì)
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)貪吃蛇
- java課程設(shè)計(jì)--貪吃蛇
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)--- 貪吃蛇小游戲程序設(shè)計(jì)
- 貪吃蛇課程設(shè)計(jì)報(bào)告
- 貪吃蛇vc課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論