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

正文內(nèi)容

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

2024-11-09 15:02本頁面

【導讀】隨著智能手機一步步走進普通人的生活,它將成為人們獲取信息的主要設(shè)備。因此,手機的娛樂應(yīng)。用服務(wù)將會有很大的發(fā)展空間,游戲也是其中之一。本系統(tǒng)主要是實現(xiàn)基于Android的推箱子游戲,推。箱子是一款來自日本的古老游戲,其設(shè)計目的是訓練人的邏輯思維能力。游戲場景一般是設(shè)定在空間狹。小的倉庫中,要求把箱子擺放到指定位置。這就要求玩家巧妙的運用有限的空間和通道,合理的安排箱。子的位置和移動次序才可能完成任務(wù)。隨著計算機游戲的發(fā)展,很多編程愛好者基于該游戲的思想開發(fā)。這其中也包括很多手機版本的實現(xiàn),伴隨著AndroidSDK技術(shù)的不。斷發(fā)展,一些基于Android應(yīng)用也不斷推陳出新,很快推箱子游戲便進入了千家萬戶。本文首先論述了android系統(tǒng)的背景和研究現(xiàn)狀,接著簡要的介紹了android的技術(shù)及對android. 分析,并且介紹了android應(yīng)用程序的結(jié)構(gòu)。各個類的實現(xiàn)進行代碼的編寫與實現(xiàn)功能。

  

【正文】 目的地。 目標受眾 ,這個游戲受眾面比較廣,應(yīng)該是老少皆宜的??紤]到受眾面廣的原因,應(yīng)該將操作方式設(shè)計得更加人性化,畫面更加清新。 運行的目標平臺,本游戲的目標平臺為 。 采用的呈現(xiàn)技術(shù),推箱子游戲一般采用的都是 2D的呈現(xiàn)技術(shù),本案例為了增強游戲的吸引力,擬采用 。 ,本游戲采用 45度視 角。 操作方式,本游戲擬采用手機鍵盤進行操作,對于沒有鍵盤的型號也可以考慮采用虛擬鍵盤。 由于該游戲使用 Eclipse作為主要的開發(fā)工具,所以在開發(fā)之前需要檢查 Eclipse是否已經(jīng)配置好。 游戲基本功能描述 推箱子是一款來自日本的古老游戲,其設(shè)計目的是訓練人的邏輯思維能力。游戲場景一般是設(shè)定在空間狹小的倉庫中,要求把箱子擺放到指定位置。這就要求玩家巧妙的運用有限的空間和通道,合理的安排箱子的位置和移動次序才可能完成任務(wù)。 該游戲的功能流程圖如圖 41所示: 17 圖 41 功能流程 具體的功能如下: 1)開始游戲,點擊此圖標開始游戲。 2)聲音開關(guān),玩家可以選擇是否開大背景音樂。 3)游戲說明,簡單介紹此游戲的基本功能和玩法。 4退出游戲,點擊此圖標退出游戲 。 推箱子游戲用例分析 ( 1)推箱子游戲主用例分析 推箱子游戲主用例主要分為一些菜單選項的設(shè)置和玩游戲的整個過程。 推箱子游戲主用例的描述。 用例 1 描述:菜單管理 運行程序 進入游戲 控制游戲聲音的開關(guān) 彈出游戲規(guī)則的說明框 退出程序 開始游戲 聲音開關(guān) 游戲說明 退出游戲 游戲歡迎界面 18 執(zhí)行者:玩家 前置條件: android 手機用戶、安裝有推箱子應(yīng)用程序 后置條 件:可以進行相關(guān)游戲選項的設(shè)置 基本路徑: 1)運行應(yīng)用程序 2)進入菜單界面 3)進行相關(guān)游戲選項的設(shè)置或選擇開始游戲 用例 2 描述:玩游戲 執(zhí)行者:玩家 前置條件:開始游戲 后置條件:游戲成功 基本路徑 1)運行應(yīng)用程序 2)進入菜單并選擇游戲開始 3)通過手機硬鍵盤控制小人移動從而將箱子移動到指定位置 用例 3 描述:游戲聲音開關(guān) 玩家可以通過游戲菜單的聲音開關(guān)選項進行游戲聲音開關(guān)的設(shè)置。 執(zhí)行者:玩家 前置條件:進入菜單界面 后置條件:返回菜單界面或開始游戲 基本路徑: 1)運行應(yīng)用程序 2)進 入菜單界面 3)觸摸菜單界面的聲音開關(guān)的圖標 用例 4:退出游戲 執(zhí)行者:玩家 前置條件:進入游戲菜單 后置條件:無 基本路徑: 1)運行應(yīng)用程序 19 2)進入游戲菜單 3)觸摸菜單界面的退出游戲圖標 游戲的類框架 游戲的類框架 如圖 42 圖 42 游戲的類框架 該游戲開發(fā)的類比較多,為了更好的理解各個類在游戲中所扮演的角色,將按照前面的框架分類對各個類的功能進行簡要簡紹 。 ( 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è)計 與實現(xiàn) 游戲界面的框架如圖 43 圖 43 游戲界面的框架 在游戲框架搭建好之后,就要開始游戲的地圖 、各個實體以及相關(guān)線程進行設(shè)計和實現(xiàn)了 。 ( 1) PushBoxActivity 的實現(xiàn) PushBoxActivity主要是游戲的控制器,其主要功能是各個 view之間的切換。 在這個程序中, 定義了一些變量 ,例如是否播放聲音的變量 boolean isSound = true、勝利時的聲音 MediaPlayer winSound、儲存游戲地圖的變量 int map1[][]; int map2[][]、和選中地圖的變量int selectMap、鍵盤的狀態(tài)變量 int action以及最重要的 Handler myHandler = new Handler變量,該變量用于 接收各個 view的控制消息,然后根據(jù)消息 的類型進行不同的處理。 變量定義好之后,初始化游戲中的聲音,設(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的實現(xiàn) KeyThread主要負責定時檢測 PushBoxActivity中鍵盤狀態(tài)碼,負責鍵盤事件。 在此程序中,睡眠時間設(shè)定為 150ms,并對循環(huán)標志、是否監(jiān)聽標志和鍵盤各個方向是否按下的變量做出定義。該類的重點在于監(jiān)聽的運行,監(jiān)聽的運行方法先判斷是否需要監(jiān)聽,當需要監(jiān)聽是,判斷其為走路或者推箱子,得到鍵盤的狀態(tài)碼,賦值到變量 action中,通過處理運算,判斷哪個按鍵被按下。例如當向上鍵被按下時,先判斷是否達到最上方,若沒到最上方則繼續(xù)判斷是否有箱子 ,若上方有箱子并且箱子上方是空地時,移動箱子,在判斷是否為目的地,若為目的地,將箱子設(shè)為綠色。其中在箱子移動時,需啟動箱子移動線程,進行箱子的無極移動,在此過程中將鍵盤的監(jiān)聽標志位設(shè)為 false,即失去屏幕監(jiān)聽。其他方向按鍵被按下時,判斷類似。 向上鍵被按下時的鍵盤監(jiān)聽方法代碼如下: while(flag){ if(keyFlag){//是否需要鍵盤監(jiān)聽 boolean typeFlag = true。//什么類型。推箱子或者走路 action = 。//得到當前鍵盤的狀態(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 的實現(xiàn) WelView負責前臺的顯示。 這個界面繼承自 SurfaceView,并且實現(xiàn)兩個接口 , OnClickListener。程序包括了引入的各個類,界面中各個圖片引用的聲明,各個物體的坐標, WeleView的構(gòu)造器 ,繪制線程 。在構(gòu)造器中,得到 PushBoxActivity的引用,添加接口的實現(xiàn) ,初始化繪制線程以及所有圖片的初始化工作。 ( 4) WeleViewDrawThread的實現(xiàn) WeleViewDrawThread繪制 。 該類為線程類,主要負責定時調(diào)用一次程序中 onDraw 的方法。 在此程序的構(gòu)造器中,得到WeleView和 surfaceHolder的引用。 程序中定義 和編寫 了睡眠的時間和循環(huán)標記位 實現(xiàn)的方法,界面的運行方式。界面的運行方法為先講畫布置空,鎖定畫布,然后繪制畫布,最后解鎖畫布,并且定義畫布每隔 200ms循環(huán)一次。 (5) WeleViewGoThread的實現(xiàn) WeleViewGoThread負責物體的移動,即物體的坐標。 該程序負責的是 WeleView中物體運動的規(guī)律的 編寫。剛進入該類的時候狀態(tài)值定義為 0,即木門移動。木頭移動完畢之后狀態(tài)值定義為 1,即鐵門移動,鐵門移動完畢之后狀態(tài)值定義為 2,即墻的移動,墻移動完畢后狀態(tài)值定義為 3,即向PushBoxActivity發(fā)送 Handler類型為 1消息,通知 PushBoxActivity切屏,也就是動畫界面完成。 (6) MenuView的實現(xiàn) 菜單界面 MenuView繼承自 SurfaceVIew,并且實現(xiàn)了 。程序有該類中引用到的圖片資源進行聲明,該類的構(gòu)造器,界面的繪制工作的編寫 ,屏幕監(jiān)聽的方法 。在該類的構(gòu)造器中包括了刷幀線程進行初始化和對圖片資源進行初始化。 界面的繪制工作只需將所有的圖片繪制到指定位置即可,而聲音狀態(tài)圖片會根據(jù) PushBoxActivity中聲音狀態(tài)值進行繪制。屏幕監(jiān)聽的方法會在 24 被玩家點擊屏幕是被調(diào)用, 包括了開始游戲按鈕,聲音按鈕,游戲說明按鈕和退出游戲按鈕的方法。 當點擊開始游戲圖片時會關(guān)閉游戲聲音,并且向 PushBoxActivity發(fā)送 Hander類型為 2的消息。當玩家點擊聲音開關(guān)圖片時, 聲音開始的處理方法為,講聲音標志位置翻, 若此時已經(jīng)聲音播放則停止聲音播放 ,若沒有聲音播放,則開始聲音播放。 (7) MenuViewDrawThread的實現(xiàn) MenuViewDrawThread 主要負責刷幀。 其實現(xiàn)和歡迎界面線程 WeleViewDrawThread 相似。 (8) MenuViewGoThread的實現(xiàn) MenuViewGoThread 主要負責圖片的移動,即菜單界面的背景的滾動 。此類比較簡單,只是規(guī)定了菜單界面背景的移動規(guī)律,即每 300毫秒更新一次圖片坐標,知道程序結(jié)束為止。 (9) GameView的實現(xiàn) GameView 主要負責前臺的顯示,負責繪制游戲中所有的信息 。 游戲地圖實現(xiàn)是整個游戲過程的核心,由于游戲的整個過程呈現(xiàn)三維立體的效果,所以游戲地圖設(shè)置也是至關(guān)重要的一塊,游戲地圖整體是用二維數(shù)組存儲在文件中的,每次打開游戲會初始化一次地圖文件,游戲地圖分為兩層地板。 該類同樣繼承自 SurfaceView,并且實現(xiàn) 。 此程序包括對PushBoxActivity的引用、初始坐標的定義、各個圖片的聲明、箱子的坐標、游戲的狀態(tài)值、構(gòu)造器、游戲畫面繪制的實現(xiàn) 。在構(gòu)造器中 ,得到 PushBoxActivity的引用,初始化刷幀線程和圖片資源。游戲畫面繪制時會根據(jù)游戲的狀態(tài)值不同進行不同的繪制,狀態(tài)值為 0 時繪制游戲時的信息,狀態(tài)值為 1時繪制游戲勝利時的信息。 游戲畫面繪制的代碼如下: if(status == 0) (true)。 ()。 for(int i=0。 i。 i++) for(int j=0。 j[i].length。 j++) int X = initX+36*j15*i。 int Y = initY+10*j+25*i。 if([i][j] == 0) ((255, 220, 220, 220))。 (canvas, X, Y)。 } else if([i][j] == 1) ((255, 170, 170, 170))。 (canvas, X, Y)。
點擊復制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1