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