freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于android的推箱子游戲的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2025-01-16 20:35本頁面
  

【正文】 e(1)一 onstop(2)一 onDestroy(2)。另外按返回鍵也可以回到原來的活動(dòng)。 ( 4)退出結(jié)束 退出結(jié)束的基本流程為 onPause 一 onStop 一 onDestroy。如果程序中有直接調(diào)用 finish 方法來關(guān)閉活動(dòng)的話,系統(tǒng)會(huì)跳過先凍結(jié)的階段,直接暫停,停止,然后銷毀。 (5)回收后再啟動(dòng) 回收后再啟動(dòng)的基本流程為 oncreate 一 onstart 一 onresume。如果被回收掉的活動(dòng)一旦又重新被調(diào)用時(shí),會(huì)像一般啟動(dòng)一樣再次調(diào)用活動(dòng)的 onCreate方法。 當(dāng)在模擬器上已經(jīng)執(zhí)行過多個(gè)應(yīng)用程序,只要按下返回鍵,就會(huì)開啟最近一次開啟過的活動(dòng)。所以如果要讓再次被創(chuàng)建的活動(dòng)跟原來開啟過的一樣,那么在活動(dòng)之間切換時(shí),就要保存資料 :即在每次活動(dòng)運(yùn)行到暫?;蛲V?fàn)顟B(tài)時(shí)先保存資料,然后在創(chuàng)建時(shí)將資料讀出來。 4 系統(tǒng) 設(shè)計(jì) 與實(shí)現(xiàn) 16 游戲的策劃 游戲的策劃主要包括游戲的情節(jié)、目標(biāo)受眾、運(yùn)行的目標(biāo)平臺(tái)、采用的呈現(xiàn)技術(shù)、操作方式等幾個(gè)方面。下面就針對(duì)本游戲?qū)ι鲜鰩讉€(gè)方面進(jìn)行簡(jiǎn)單的介紹,如下所列。 游戲情節(jié),本游戲?yàn)檩p量級(jí)的益智游戲,因此不存在很復(fù)雜的情節(jié)。這方面主 要要做的工作主要為設(shè)計(jì)游戲各關(guān)倉庫的形狀、大小、可通過區(qū)域,以及各關(guān)中箱子的初始位置與目的地。 目標(biāo)受眾 ,這個(gè)游戲受眾面比較廣,應(yīng)該是老少皆宜的??紤]到受眾面廣的原因,應(yīng)該將操作方式設(shè)計(jì)得更加人性化,畫面更加清新。 運(yùn)行的目標(biāo)平臺(tái),本游戲的目標(biāo)平臺(tái)為 。 采用的呈現(xiàn)技術(shù),推箱子游戲一般采用的都是 2D 的呈現(xiàn)技術(shù),本案例為了增強(qiáng)游戲的吸引力,擬采用 。 呈現(xiàn)技術(shù)也有多種視角可供選擇,本游戲采用 45度視角。 操作方式,本游戲擬采用手機(jī)鍵盤進(jìn)行操作,對(duì)于沒有鍵盤的型號(hào)也 可以考慮采用虛擬鍵盤。 由于該游戲使用 Eclipse作為主要的開發(fā)工具,所以在開發(fā)之前需要檢查 Eclipse是否已經(jīng)配置好。 游戲基本功能描述 推箱子是一款來自日本的古老游戲,其設(shè)計(jì)目的是訓(xùn)練人的邏輯思維能力。游戲場(chǎng)景一般是設(shè)定在空間狹小的倉庫中,要求把箱子擺放到指定位置。這就要求玩家巧妙的運(yùn)用有限的空間和通道,合理的安排箱子的位置和移動(dòng)次序才可能完成任務(wù)。 該游戲的功能流程圖如圖 41所示: 17 圖 41 功能流程 具體的功能如下: 1)開始游戲,點(diǎn)擊此圖標(biāo)開始游戲。 2)聲音開關(guān),玩家可以選擇是否開大背景音樂。 3)游戲說明,簡(jiǎn)單介紹此游戲的基本功能和玩法。 4退出游戲,點(diǎn)擊此圖標(biāo)退出游戲 。 推箱子游戲用例分析 ( 1)推箱子游戲主用例分析 推箱子游戲主用例主要分為一些菜單選項(xiàng)的設(shè)置和玩游戲的整個(gè)過程。 推箱子游戲主用例的描述。 用例 1 描述:菜單管理 運(yùn)行程序 進(jìn)入游戲 控制游戲聲音的開關(guān) 彈出游戲規(guī)則的說明框 退出程序 開始游戲 聲音開關(guān) 游戲說明 退出游戲 游戲歡迎界面 18 執(zhí)行者:玩家 前置條件: android 手機(jī)用戶、安裝有推箱子應(yīng)用程序 后置條件:可以進(jìn)行相關(guān)游戲選項(xiàng)的設(shè)置 基本路徑: 1)運(yùn)行應(yīng)用程序 2)進(jìn)入菜單界面 3)進(jìn)行相關(guān)游戲選項(xiàng)的設(shè)置或選擇開始游戲 用例 2 描述:玩游戲 執(zhí)行者:玩家 前置條件:開始游戲 后置條件:游戲成功 基本路徑 1)運(yùn)行應(yīng)用程序 2)進(jìn)入菜單并選擇游戲開始 3)通過手機(jī)硬鍵盤控制小人移動(dòng)從而將箱子移動(dòng)到指定位置 用例 3 描述:游戲聲音開關(guān) 玩家可以通過游戲菜單的聲音開關(guān)選項(xiàng)進(jìn)行游戲聲音開關(guān)的設(shè)置。 執(zhí)行者:玩家 前置條件:進(jìn)入菜單界面 后置條件:返回菜單界面或開始游戲 基本路徑: 1)運(yùn)行應(yīng)用程序 2)進(jìn)入菜單界面 3)觸摸菜單界面的聲音開關(guān)的圖標(biāo) 用例 4:退出游戲 執(zhí)行 者:玩家 前置條件:進(jìn)入游戲菜單 后置條件:無 基本路徑: 1)運(yùn)行應(yīng)用程序 19 2)進(jìn)入游戲菜單 3)觸摸菜單界面的退出游戲圖標(biāo) 游戲的類框架 游戲的類框架 如圖 42 圖 42 游戲的類框架 該游戲開發(fā)的類比較多,為了更好的理解各個(gè)類在游戲中所扮演的角色,將按照前面的框架分類對(duì)各個(gè)類的功能進(jìn)行簡(jiǎn)要簡(jiǎn)紹 。 ( 1) 共有類 共有類: (1) PushBoxActivity. (2) KeyThrad. ( 2) 歡迎界面相關(guān)類 歡迎界面相關(guān)類: 1) WeleView. 2) WeleViewDrawThread. 3) WeleViewGoThread. ( 3) 菜單界面相關(guān)類 菜單界面相關(guān)類: 1) MenuView. 2) MenuViewDrawThread. 3) MenuViewGothread. 20 ( 4) 游戲界面相關(guān)類 游戲界面相關(guān)類: 1) GameView. 2) MySprite. 3) SpriteThread. 4) SpriteMoveThread. (5) BoxThread. (6) MapList. (7) GameViewDrawThread. 游戲界面的框架設(shè) 計(jì) 與實(shí)現(xiàn) 游戲界面的框架如圖 43 圖 43 游戲界面的框架 在游戲框架搭建好之后,就要開始游戲的地圖 、各個(gè)實(shí)體以及相關(guān)線程進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)了 。 ( 1) PushBoxActivity的實(shí)現(xiàn) PushBoxActivity主要是游戲的控制器,其主要功能是各個(gè) view之間的切換。 在這個(gè)程序中, 定義了一些變量 ,例如是否播放聲音的變量 boolean isSound = true、勝利時(shí)的聲音 MediaPlayer winSound、儲(chǔ)存游戲地圖的變量 int map1[][]; int map2[][]、和選中地圖 的變量int selectMap、鍵盤的狀態(tài)變量 int action以及最重要的 Handler myHandler = new Handler變量,該變量用于 接收各個(gè) view的控制消息,然后根據(jù)消息 的類型進(jìn)行不同的處理。 變量定義好之后,初始化游戲中的聲音,設(shè)置為循環(huán)播放。 21 該程序最后的部分編寫的是鍵盤抬起的處理辦法和鍵盤按下的處理方法。 鍵盤抬起和鍵盤按下的代碼如下: public boolean onKeyUp(int keyCode, KeyEvent event) if(keyCode == 19) action = action amp。 0x37。 if(keyCode == 20) action = action amp。 0x3B。 if(keyCode == 21) action = action amp。 0x3D。 if(keyCode == 22){ action = action amp。 0x3E。 return false。 public boolean onKeyDown(int keyCode, KeyEvent event) if(keyCode == 19) action = action | 0x08。 if(keyCode == 20) action = action | 0x04。 if(keyCode == 21) action = action | 0x02。 if(keyCode == 22) action = action | 0x01。 ( 2) KeyThread的實(shí)現(xiàn) KeyThread主要負(fù)責(zé)定時(shí)檢測(cè) PushBoxActivity中鍵盤狀態(tài)碼,負(fù)責(zé)鍵盤事件。 在此程序中,睡眠時(shí)間設(shè)定為 150ms,并對(duì)循環(huán)標(biāo)志、是否監(jiān)聽標(biāo)志和鍵盤各個(gè)方向是否按下的變量做出定義。該類的重點(diǎn)在于監(jiān) 聽的運(yùn)行,監(jiān)聽的運(yùn)行方法先判斷是否需要監(jiān)聽,當(dāng)需要監(jiān)聽是,判斷其為走路或者推箱子,得到鍵盤的狀態(tài)碼,賦值到變量 action 中,通過處理運(yùn)算,判斷哪個(gè)按鍵被按下。例如當(dāng)向上鍵被按下時(shí),先判斷是否達(dá)到最上方,若沒到最上方則繼續(xù)判斷是否有箱子 ,若上方有箱子并且箱子上方是空地時(shí),移動(dòng)箱子,在判斷是否為目的地,若為目的地,將箱子設(shè)為綠色。其中在箱子移動(dòng)時(shí),需啟動(dòng)箱子移動(dòng)線程,進(jìn)行箱子的無極移動(dòng),在此過程中將鍵盤的監(jiān)聽標(biāo)志位設(shè)為 false,即失去屏幕監(jiān)聽。其他方向按鍵被按下時(shí),判斷類似。 向上鍵被按下時(shí)的鍵盤監(jiān)聽方法代 碼如下: while(flag){ if(keyFlag){//是否需要鍵盤監(jiān)聽 boolean typeFlag = true。//什么類型。推箱子或者走路 action = 。//得到當(dāng)前鍵盤的狀態(tài)碼 if((action amp。 0x08) != 0) KEY_UP = true。 } 22 else{ KEY_UP = false。 } if((action amp。 0x04) != 0) KEY_DOWN = true。 } else{ KEY_DOWN = false。 } if((action amp。 0x02) != 0) KEY_LEFT = true。 } else{ KEY_LEFT = false。 } if((action amp。 0x01) != 0) KEY_RIGHT = true。 } else{ KEY_RIGHT = false。 } if(KEY_UP == true) = false。 if(!( =0)) if([][] == 1 || [][] == 3) if([][] == 0){ if([][] == 2 || [][] == 3) [][] = 3。 } else{ [][] = 1。 } [][] = 0。 = 23 。 = 。 BoxThread bt = new BoxThread(1,pushBoxActivity,)。 ()。 typeFlag = false。 } } } ( 3) WeleView 的實(shí)現(xiàn) WelView負(fù)責(zé)前臺(tái)的顯示。 這個(gè)界面繼承自 SurfaceView,并且實(shí)現(xiàn)兩個(gè)接口 , OnClickListener。程序包括了引入的各個(gè)類,界面中各個(gè)圖片引用的聲明,各個(gè)物體的坐標(biāo), WeleView 的構(gòu)造器 ,繪制線程 。在構(gòu)造器中,得到 PushBoxActivity的引用,添加接口的實(shí)現(xiàn) ,初始化繪制線程以及所有圖片的初始化工作。 ( 4) WeleViewDrawThread 的實(shí)現(xiàn) WeleViewDrawThread繪制 。 該類為線程類,主要負(fù)責(zé)定時(shí)調(diào)用一次程序中 onDraw 的方法。 在此程序的構(gòu)造器中,得到WeleView和 surfaceHolder的 引用。 程序中定義 和編寫 了睡眠的時(shí)間和循環(huán)標(biāo)記位 實(shí)現(xiàn)的方法,界面的運(yùn)行方式。界面的運(yùn)行方法為先講畫布置空,鎖定畫布,然后繪制畫布,最后解鎖畫布,并且定義畫布每隔 200ms循環(huán)一次。 (5) WeleViewGoThread 的實(shí)現(xiàn) WeleViewGoThread 負(fù)責(zé)物體的移動(dòng),即物體的坐標(biāo)。 該程序負(fù)責(zé)的是 WeleView中物體運(yùn)動(dòng)的規(guī)律的編寫。剛進(jìn)入該類的時(shí)候狀態(tài)值定義為 0,即木門移動(dòng)。木頭移動(dòng)完畢之后狀態(tài)值定義為 1,即鐵門移動(dòng),鐵門移動(dòng)完畢之后狀態(tài)值定義為 2,即墻的移動(dòng),墻移動(dòng)完畢后狀態(tài)值 定義為 3,即向PushBoxActivity發(fā)送 Handler類型為 1消息,通知 PushBoxActivity 切屏,也就是動(dòng)畫界面完成。 (6) MenuView的實(shí)現(xiàn) 菜單界面 MenuView繼承自 SurfaceVIew,并且實(shí)現(xiàn)了 接口 。程序有該類中引用到的圖片資源進(jìn)行聲明,該類的構(gòu)造器,界面的繪制工作的編寫 ,屏幕監(jiān)聽的方法 。在該類的構(gòu)造器中包括了刷幀線程進(jìn)行初始化和對(duì)圖片資源進(jìn)行初始化。 界面的繪制工作只需將所有的圖片繪制到指定位置即可,而聲音狀態(tài)圖片會(huì)根據(jù) PushBoxActivity中聲音狀態(tài)值進(jìn)行繪制。屏幕監(jiān)聽的方法會(huì)在 24 被玩家點(diǎn)擊屏幕是被調(diào)用, 包括了開始游戲按鈕,聲音按鈕,游戲說明按鈕和退出游戲按鈕的方法。 當(dāng)點(diǎn)擊開始游戲圖片時(shí)會(huì)關(guān)閉游戲聲音,并且向 PushBoxActivity 發(fā)送 Hander類型為 2 的消息。當(dāng)玩家點(diǎn)擊聲音開關(guān)圖片時(shí), 聲音開始的處理方法為,講聲音標(biāo)志位置翻, 若此時(shí)已經(jīng)聲音播放則停止聲音播放,若沒有聲音播放,則開始聲音播放。 (7) MenuViewDrawThread的實(shí)現(xiàn) MenuViewDrawThread 主要負(fù)責(zé)刷幀。 其實(shí)現(xiàn)和歡迎界面線 程 WeleViewDrawThread 相似。 (8) MenuViewGoThread的實(shí)現(xiàn) MenuViewGoThread 主要負(fù)責(zé)圖片的移動(dòng),即菜單界面的背景的滾動(dòng) 。此類比較簡(jiǎn)單,只是規(guī)定了菜單界面背景的移動(dòng)規(guī)律,即每 300毫秒更新一次圖片坐標(biāo),知道程序結(jié)束為止。 (9) GameView的實(shí)現(xiàn) GameView 主要負(fù)責(zé)前臺(tái)的顯示,
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1