安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第1頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第2頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第3頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第4頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

遼寧科技大學(xué)新技術(shù)專(zhuān)題報(bào)告設(shè)計(jì)題目:安卓游戲貪吃蛇學(xué)院、系:電信學(xué)院、計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)班級(jí):計(jì)算機(jī)09.1學(xué)生姓名:劉帥指導(dǎo)教師:龍艷彬滕薇成績(jī):2023年7月1日目錄第一章緒論3開(kāi)發(fā)背景3安卓系統(tǒng)簡(jiǎn)介3游戲簡(jiǎn)介3開(kāi)發(fā)目的及意義4開(kāi)發(fā)環(huán)境及工具4第二章需求分析5游戲界面分析5游戲角色分析5游戲控制分析52.4可行性分析6第三章總體設(shè)計(jì)7系統(tǒng)功能模塊層次圖7運(yùn)行機(jī)制8貪吃蛇功能流程圖10第四章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)124.1TiltView類(lèi)124.2SnakeView類(lèi)14界面設(shè)計(jì)16第五章測(cè)試20游戲功能測(cè)試20游戲控制測(cè)試20游戲界面測(cè)試20測(cè)試結(jié)果20第六章結(jié)論21第一章緒論安卓系統(tǒng)作為新興的操作系統(tǒng),在問(wèn)世不久,變風(fēng)行全球,占領(lǐng)操作系統(tǒng)里很大的市場(chǎng)份額,與蘋(píng)果,諾基亞三分天下,Android是基于Linux開(kāi)放性?xún)?nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的操作系統(tǒng)。早期由原名為"Android"的公司開(kāi)發(fā),谷歌在2005年收購(gòu)"Android.Inc"后,繼續(xù)對(duì)Android系統(tǒng)開(kāi)發(fā)運(yùn)營(yíng),它采用了軟件堆層〔softwarestack,又名軟件疊層〕的架構(gòu),主要分為三局部。底層Linux內(nèi)核只提供根本功能,其他的應(yīng)用軟件那么由各公司自行開(kāi)發(fā),局部程序以Java編寫(xiě)。1976年,Gremlin平臺(tái)推出了一款經(jīng)典街機(jī)游戲Blockade。游戲中,兩名玩家分別控制一個(gè)角色在屏幕上移動(dòng),所經(jīng)之處砌起圍欄。角色只能向左、右方向90度轉(zhuǎn)彎,游戲目標(biāo)保證讓對(duì)方先撞上屏幕或圍欄。聽(tīng)起來(lái)有點(diǎn)復(fù)雜?其實(shí)就是下面這個(gè)樣子:

根本上就是兩條每走一步都會(huì)長(zhǎng)大的貪吃蛇比誰(shuí)后完蛋,玩家要做的就是防止撞上障礙物和越來(lái)越長(zhǎng)的身體。更多照片、視頻可以看GamesDBase的介紹。

Blockade很受歡送,類(lèi)似的游戲先后出現(xiàn)在Atari2600、TRS-80、蘋(píng)果2等早期游戲機(jī)、計(jì)算機(jī)上。但真正讓這種游戲形式紅遍全球的還是21年后隨諾基亞走向世界的貪吃蛇游戲——Snake。貪吃蛇游戲是一款老牌的游戲,同時(shí)也是一款比擬需要耐心地游戲。貪吃蛇游戲就是一條小蛇,不停地在屏幕上游走,吃各個(gè)方向出現(xiàn)的食物,越吃越長(zhǎng)。只要蛇頭碰到屏幕四周,或者碰到自己的身子,小蛇就立即斃命。玩“貪吃蛇游戲〞,難度最大的不是蛇長(zhǎng)得很長(zhǎng)的時(shí)候,而是開(kāi)始的時(shí)候。那時(shí)蛇身很短,看上去難度不大,卻最容易死掉,因?yàn)榘淹嬉粭l小蛇讓人容易走神,失去耐心。通過(guò)本次課程設(shè)計(jì),了解android軟件的開(kāi)發(fā)過(guò)程,熟悉并掌握J(rèn)AVA語(yǔ)言,HTML.程序關(guān)鍵在于表示蛇的圖形及蛇的移動(dòng)。用一個(gè)小矩形快表示蛇的一節(jié)身體,身體每長(zhǎng)一節(jié),增加一個(gè)矩形塊,蛇頭用倆節(jié)表示。移動(dòng)時(shí)必須從蛇頭開(kāi)始,所以蛇不能向相反的方向移動(dòng),如果不按任意鍵,蛇自行在當(dāng)前方向上前移,但按下有效方向鍵后,蛇頭朝著該方向移動(dòng),一步移動(dòng)一節(jié)身體,所以按下有效方向鍵后,先確定蛇頭的位置,而后蛇的身體隨蛇頭移動(dòng),圖形的實(shí)現(xiàn)是從蛇頭新位置開(kāi)始畫(huà)出蛇,這時(shí),由于未清屏的原因,原來(lái)的蛇的位置和新蛇的位置差一個(gè)單位,所以看起來(lái)蛇多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)與消失也是畫(huà)矩形塊和覆蓋矩形塊。為了便于理解,定義兩個(gè)結(jié)構(gòu)體:食物與蛇目的本程序?qū)崿F(xiàn)主要技巧在于java語(yǔ)言的應(yīng)用。目的在于提高編程的水平。采用eclipse開(kāi)發(fā)工具,在windowsxp下進(jìn)行,基于安卓2.2操作系統(tǒng)。環(huán)境搭建:1.JDK安裝2.Eclipse安裝3.AndroidSDK安裝4.ADT安裝創(chuàng)立AVD需求分析分析首先應(yīng)解決操作界面的問(wèn)題,操作界面應(yīng)該人性化設(shè)計(jì),提示玩家當(dāng)前游戲狀態(tài),何時(shí)開(kāi)始,按什么按鍵開(kāi)始游戲,開(kāi)始游戲之后,在游戲界面中,以坐標(biāo)的形式對(duì)整體界面進(jìn)行劃分,將界面劃分為許多個(gè)小方格,還應(yīng)設(shè)計(jì)蛇的樣式,蘋(píng)果的樣式和墻的樣式,在蛇吃到蘋(píng)果后的樣式,還有游戲結(jié)束或暫停時(shí),界面的顯示,游戲結(jié)束后,要顯示所得的分?jǐn)?shù)。分析設(shè)置游戲貪吃蛇初始時(shí)由固定個(gè)小矩形塊組成,并且,游戲中,要隨機(jī)出現(xiàn)由單個(gè)矩形塊構(gòu)成的蘋(píng)果,并且在設(shè)置蘋(píng)果的時(shí)候,還要設(shè)置,不能使將要出現(xiàn)的蘋(píng)果出現(xiàn)在蛇的身體之下,在蛇吃到蘋(píng)果的時(shí)候,要將蛇的身體加長(zhǎng),隨著游戲的進(jìn)行,蛇移動(dòng)的速度也要加快。此外,要判定游戲成功與失敗的條件,當(dāng)蛇的頭和尾相撞或者蛇的頭部撞到了墻上,那么游戲失敗,此時(shí)游戲結(jié)束,界面顯示所得分?jǐn)?shù),當(dāng)累積分?jǐn)?shù)到達(dá)一定標(biāo)準(zhǔn)那么游戲成功。另外蛇的移動(dòng)原理,由外部按鍵設(shè)置監(jiān)聽(tīng)控制蛇頭的移動(dòng)方向,在方向的指引下進(jìn)行移動(dòng),蛇及蘋(píng)果的位置都是由坐標(biāo)數(shù)組確定的,蘋(píng)果的位置也是隨機(jī)產(chǎn)生的蛇的移動(dòng)原理是后一矩形塊覆蓋前一個(gè)矩形塊。當(dāng)一個(gè)蘋(píng)果被吃掉的時(shí)候,要自動(dòng)生成并顯示下一個(gè)蘋(píng)果的位置。這些都是在設(shè)計(jì)過(guò)程中需要實(shí)現(xiàn)的。游戲控制分析游戲中需要通過(guò)按鍵對(duì)蛇的移動(dòng)方位進(jìn)行控制,共需要設(shè)置四個(gè)方位,分別是“東〞“西〞“南〞“北〞,在按鍵上用“上〞“下〞“左〞“右〞,按鍵與執(zhí)行局部便涉及到監(jiān)聽(tīng),通過(guò)監(jiān)聽(tīng)指示蛇的運(yùn)動(dòng),此外,要設(shè)置蛇移動(dòng)是的默認(rèn)方向?yàn)椤吧熄曈螒蜷_(kāi)始時(shí)也是由“上〞鍵啟動(dòng),暫停后根據(jù)玩家的操作自動(dòng)控制蛇的移動(dòng)方向,設(shè)計(jì)過(guò)程中還應(yīng)注意,蛇的移動(dòng)只能是90度偏轉(zhuǎn),不能進(jìn)行180度偏轉(zhuǎn)。此外還要設(shè)置游戲的四種狀態(tài),準(zhǔn)備,運(yùn)行,暫停,結(jié)束,蛇體變長(zhǎng)的時(shí)候要用累加器進(jìn)行加分。游戲暫停時(shí),要對(duì)當(dāng)前游戲的參數(shù)和狀態(tài)進(jìn)行保存??尚行苑治鲐澇陨哂螒蚴且环N簡(jiǎn)單的群眾的游戲,自從計(jì)算機(jī)實(shí)現(xiàn)以來(lái),深受廣闊電腦玩家的喜愛(ài),做一個(gè)簡(jiǎn)單的貪吃蛇小游戲。

貪吃蛇的核心算法時(shí)如何實(shí)現(xiàn)移動(dòng)和吃掉食物,沒(méi)有碰到食物的時(shí)候,把當(dāng)前運(yùn)動(dòng)方向上的下個(gè)節(jié)點(diǎn)入隊(duì),并以蛇節(jié)點(diǎn)的顏色繪制這個(gè)節(jié)點(diǎn),然后把頭指針?biāo)傅墓?jié)點(diǎn)出隊(duì),并以游戲框架內(nèi)部背景色重繪出隊(duì)的節(jié)點(diǎn),這樣就可以到達(dá)移動(dòng)的效果。而在吃到食物的時(shí)候,那么只需把食物入隊(duì)即可。實(shí)現(xiàn)貪吃蛇的根本的蛇身移動(dòng)、吃到食物身體增長(zhǎng)、和碰到墻壁或自身死亡,能夠暫停和開(kāi)始。

本次設(shè)計(jì)我將主要運(yùn)用java語(yǔ)言來(lái)完成。Java語(yǔ)言是一種跨平臺(tái),適合于分布式計(jì)算環(huán)境的面向?qū)ο缶幊陶Z(yǔ)言,用Java寫(xiě)的應(yīng)用程序不用修改就可在不同的軟硬件平臺(tái)上運(yùn)行。

由于Java主要用于網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā),因此對(duì)平安性有較高的要求。如果沒(méi)有平安保證,用戶(hù)從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險(xiǎn)。Java通過(guò)自己的平安機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞??傮w設(shè)計(jì)系統(tǒng)功能模塊層次圖工程中包括4個(gè)Activity,分別為Snake〔主界面〕、Game〔游戲界面〕、Help〔游戲說(shuō)明界面〕、AuthorView〔作者信息界面〕,通過(guò)不同Activity之間的轉(zhuǎn)換實(shí)現(xiàn)不同界面之間的切換。Snake〔Activity〕繼承了SnakeView類(lèi),SnakeView類(lèi)繼承了TileView類(lèi)。TileView類(lèi)繼承了View其實(shí)Snake的工程蠻簡(jiǎn)單的,源文件就三個(gè):Snake.javaSnakeView.javaTileView.java。Snake類(lèi)是這個(gè)游戲的入口點(diǎn),TitleView類(lèi)進(jìn)行游戲的繪畫(huà),SnakeView類(lèi)那么是對(duì)游戲控制操作的處理。Coordinate,RefreshHandler是2個(gè)輔助類(lèi),也是SnakeView類(lèi)中的內(nèi)部類(lèi)。其中,Coordinate是一個(gè)點(diǎn)的坐標(biāo)〔x,y〕,RefreshHandler將RefreshHandler對(duì)象綁定某個(gè)線程并給它發(fā)送消息。如下列圖:類(lèi)圖任何游戲都需要有個(gè)引擎來(lái)推動(dòng)游戲的運(yùn)行,最簡(jiǎn)化的游戲引擎就是:在一個(gè)線程中While循環(huán),檢測(cè)用戶(hù)操作,對(duì)用戶(hù)的操作作出反響,更新游戲的界面,直到用戶(hù)退出游戲。

在Snake這個(gè)游戲中,輔助類(lèi)RefreshHandler繼承自Handler,用來(lái)把RefreshHandler與當(dāng)前線程進(jìn)行綁定,從而可以直接給線程發(fā)送消息并處理消息。注意一點(diǎn):Handle對(duì)消息的處理都是異步。RefreshHandler在Handler的根底上增加sleep()接口,用來(lái)每隔一個(gè)時(shí)間段后給當(dāng)前線程發(fā)送一個(gè)消息。handleMessage()方法在接受消息后,根據(jù)當(dāng)前的游戲狀態(tài)重繪界面,運(yùn)行機(jī)制如下:

活動(dòng)圖

運(yùn)行機(jī)制

這比擬類(lèi)似定時(shí)器的概念,在特定的時(shí)刻發(fā)送消息,根據(jù)消息處理相應(yīng)的事件。update()與sleep()間接的相互調(diào)用就構(gòu)成了一個(gè)循環(huán)。這里要注意:mRedrawHandle綁定的是Avtivity所在的線程,也就是程序的主線程;另外由于sleep()是個(gè)異步函數(shù),所以u(píng)pdate()與sleep()之間的相互調(diào)用才沒(méi)有構(gòu)成死循環(huán)。

最后分析下游戲數(shù)據(jù)的保存機(jī)制,如下:

活動(dòng)圖

這里考慮了Activity的生命周期:如果用戶(hù)在游戲期間離開(kāi)游戲界面,游戲暫停;或者由于內(nèi)存比擬緊張,Android關(guān)閉游戲釋放內(nèi)存,那么當(dāng)用戶(hù)返回游戲界面的時(shí)候恢復(fù)到上次離開(kāi)時(shí)的界面。開(kāi)始開(kāi)始始初化蛇和蘋(píng)果屏幕顯示蛇和蘋(píng)果位置蛇開(kāi)始移動(dòng),后坐標(biāo)覆蓋前坐標(biāo)是否有按鍵否根據(jù)上次方向更新坐標(biāo)是根據(jù)按鍵不同在原坐標(biāo)根底上改變蛇的坐標(biāo)位置更新方向是否吃到蘋(píng)果是蛇身加1否是否越界或撞到蛇身是游戲結(jié)束否第四章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1TiltView類(lèi)TiltView的基類(lèi)是View,包含了貪吃蛇游戲畫(huà)面的各個(gè)設(shè)定參數(shù),主要負(fù)責(zé)繪制游戲畫(huà)面。TileView類(lèi)定義如下:publicclassTileViewextendsView{privatestaticfinalStringtag="yao";protectedstaticintmTileSize=20;//方格的邊長(zhǎng)protectedstaticintmXTileCount;//X軸上方格的個(gè)數(shù)protectedstaticintomYTileCount;//Y軸上方格的個(gè)數(shù)privatestaticintmXOffset;//繪圖時(shí)X軸上的起始坐標(biāo)privatestaticintmYOffset;//繪圖時(shí)Y軸上的起始坐標(biāo)privateBitmap[]mTileArray;//位圖數(shù)組privateint[][]mTileGrid;//映射整個(gè)游戲畫(huà)面的數(shù)組privatefinalPaintmPaint=newPaint();//畫(huà)筆publicTileView(Contextcontext,AttributeSetattrs){super(context,attrs); Log.i(tag,"TileViewConstructor"); Log.i(tag,"mTileSize="+mTileSize); }//重置位圖數(shù)組的長(zhǎng)度publicvoidresetTiles(inttilecount){mTileArray=newBitmap[tilecount]; }@Override//適應(yīng)各種分辨率的屏幕,當(dāng)改變屏幕大小尺寸時(shí),同時(shí)修改tile的相關(guān)計(jì)數(shù)指標(biāo)protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){ Log.i(tag,"onSizeChanged,"+"w="+w+"h="+h+"oldw="+oldw+"oldh="+oldh);mXTileCount=(int)Math.floor(w/mTileSize);mYTileCount=(int)Math.floor(h/mTileSize); Log.i(tag,"mXTileCount="+mXTileCount); Log.i(tag,"mYTileCount="+mYTileCount);mXOffset=((w-(mTileSize*mXTileCount))/2);mYOffset=((h-(mTileSize*mYTileCount))/2); Log.i(tag,"mXOffset="+mXOffset); Log.i(tag,"mYOffset="+mYOffset);mTileGrid=newint[mXTileCount][mYTileCount]; clearTiles(); }//這里做了一個(gè)Drawable到bitmap的轉(zhuǎn)換publicvoidloadTile(intkey,Drawabletile){ Bitmapbitmap=Bitmap.createBitmap(mTileSize,mTileSize,Bitmap.Config.ARGB_8888); Canvascanvas=newCanvas(bitmap); tile.setBounds(0,0,mTileSize,mTileSize);aw(canvas);mTileArray[key]=bitmap; }//清空?qǐng)D形顯示publicvoidclearTiles(){ Log.i(tag,"TileView.clearTiles");for(intx=0;x<mXTileCount;x++){for(inty=0;y<mYTileCount;y++){ setTile(0,x,y); } } }//在相應(yīng)的坐標(biāo)位置繪制相應(yīng)的磚塊publicvoidsetTile(inttileindex,intx,inty){mTileGrid[x][y]=tileindex; }//onDraw@Override//將直接操作的畫(huà)布繪制到界面上publicvoidonDraw(Canvascanvas){ Log.i(tag,"onDraw");super.onDraw(canvas); Bitmapbmp;floatleft;floattop;for(intx=0;x<mXTileCount;x++){for(inty=0;y<mYTileCount;y++){if(mTileGrid[x][y]>0){ bmp=mTileArray[mTileGrid[x][y]]; left=x*mTileSize+mXOffset; top=y*mTileSize+mYOffset; canvas.drawBitmap(bmp,left,top,mPaint); } } } }}4.2SnakeView類(lèi)SnakeView類(lèi)定義了游戲運(yùn)行時(shí)的畫(huà)面改變及蛇體和果子的更新方法。首先用Handler機(jī)制實(shí)現(xiàn)定時(shí)刷新,代碼如下:classRefreshHandlerextendsHandler{//獲取消息并處理@OverridepublicvoidhandleMessage(Messagemsg){ SnakeView.this.update(); SnakeView.this.invalidate();//刷新view為基類(lèi)的界面 Log.i(tag,"handleMessage|ThreadName="+Thread.currentThread().getName()); }//定時(shí)發(fā)送消息給UI線程,以此到達(dá)更新效果publicvoidsleep(longdelayMillis){this.removeMessages(0);//清空消息隊(duì)列,Handler進(jìn)入對(duì)新消息的等待 Log.i(tag,"sleep|ThreadName="+Thread.currentThread().getName());//定時(shí)發(fā)送新消息,激活handler sendMessageDelayed(obtainMessage(0),delayMillis); } };定義SnakeView()函數(shù)初始化游戲,代碼如下:publicSnakeView(Contextcontext,AttributeSetattrs){super(context,attrs); Log.i(tag,"SnakeViewConstructor"); initSnakeView();//構(gòu)造函數(shù)中,初始化游戲 }定義initSnakeView()初始化SnakeView類(lèi),代碼如下:privatevoidinitSnakeView(){ Log.e(tag,"initSnakeView");//設(shè)置焦點(diǎn),由于存在文字界面和游戲界面的跳轉(zhuǎn)。這個(gè)focus是不可或缺的。 setFocusable(true);//取得資源中的圖片,加載到磚塊字典中。 Resourcesr=this.getContext().getResources(); resetTiles(4); loadTile(RED_STAR,r.getDrawable(R.drawable.redstar)); loadTile(YELLOW_STAR,r.getDrawable(R.drawable.yellowstar)); loadTile(GREEN_STAR,r.getDrawable(R.drawable.greenstar)); }此外還定義了updateWalls()、updateApples()、updateSnake()繪制墻、果子、蛇,以及更新畫(huà)面函數(shù)、保存位置坐標(biāo)函數(shù)等,具體代碼請(qǐng)?jiān)斠?jiàn)目錄。界面設(shè)計(jì)包括游戲主界面〔Snake〕、游戲說(shuō)明界面、游戲界面的設(shè)計(jì)。界面的設(shè)計(jì)采用的是xml文檔形式,在xml文檔中規(guī)劃好界面布局布局后,分別在java文件中聲明。主界面設(shè)計(jì):主界面包括一個(gè)TextView及布局設(shè)定<?xmlversion="1.0"encoding="utf-8"?><!--Copyright(C)2007TheAndroidOpenSourceProjectLicensedundertheApacheLicense,Version2.0(the"License");youmaynotusethisfileexceptincompliancewiththeLicense.YoumayobtainacopyoftheLicenseatUnlessrequiredbyapplicablelaworagreedtoinwriting,softwaredistributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.SeetheLicenseforthespecificlanguagegoverningpermissionsandlimitationsundertheLicense.--><FrameLayoutxmlns:android="://schemas.android/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><android:id="@+id/snake"android:layout_width="match_parent"android:layout_height="match_parent"tileSize="24"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text"android:text="@string/snake_layout_text_text"android:visibility="visible"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:gravity="center_horizontal"android:textColor="#ff8888ff"android:textSize="24sp"/></RelativeLayout></FrameLayout>至此,全部界面設(shè)計(jì)完成,但還有最重要的一步,就是將所有的Activity注冊(cè)到中。文檔如下:<?xmlversion="1.0"encoding="utf-8"?><!--Copyright(C)2007TheAndroidOpenSourceProjectLicensedundertheApacheLicense,Version2.0(the"License");youmaynotusethisfileexceptincompliancewiththeLicense.YoumayobtainacopyoftheLicenseatUnlessrequiredbyapplicablelaworagreedtoinwriting,softwaredistributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.SeetheLicenseforthespecificlanguagegoverningpermissionsandlimitationsundertheLicense.--><!--DeclarethecontentsofthisAndroidapplication.ThenamespaceattributebringsintheAndroidplatformnamespace,andthepackagesuppliesauniquenamefortheapplication.Whenwritingyourownapplication,thepackagenamemustbechangedfrom"com.example.*"tocomefromadomainthatyouownorhavecontrolover.--><manifestxmlns:android="://schemas.android/apk/res/android"package="com.example.android.snake"><applicationandroid:label="SnakeonaPhone"><activityandroid:name="Snake"android:theme="@android:style/Theme.NoTitleBar"android:screenOrientation="portrait"android:configChanges="keyboardHidden|orientation"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity></application></manifest>工程演示游戲前畫(huà)面游戲中界面游戲結(jié)束時(shí)畫(huà)面第五章測(cè)試經(jīng)過(guò)在模擬器上的測(cè)試,本軟件能書(shū)案例實(shí)現(xiàn)其功能,到達(dá)了小蛇在屏幕上的移動(dòng),小蛇吃蘋(píng)果,蘋(píng)果隨機(jī)出現(xiàn)的功能,當(dāng)小蛇頭尾相撞或與墻相撞時(shí),游戲結(jié)束.這些均在測(cè)試中得到驗(yàn)證。在測(cè)試過(guò)程中,也著重對(duì)游戲的控制功能進(jìn)行了測(cè)試,游戲是通過(guò)方向鍵的控制來(lái)實(shí)現(xiàn)的,在游戲剛開(kāi)始的階段,上下左右四個(gè)方位的控制都很成功,但隨著蛇移動(dòng)的速度越來(lái)越快,按鍵的控制反響會(huì)出現(xiàn)滯后,通過(guò)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論