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

正文內(nèi)容

基于android的推箱子游戲設(shè)計(jì)畢業(yè)論文-在線(xiàn)瀏覽

2024-08-08 00:16本頁(yè)面
  

【正文】 這個(gè)特殊類(lèi)實(shí)現(xiàn)在Activity與Activity之間的切換。在Intent的描述結(jié)構(gòu)中,有兩個(gè)最重要的部分:動(dòng)作和動(dòng)作對(duì)應(yīng)的數(shù)據(jù)。數(shù)據(jù)是應(yīng)用的核心。但是在Android中,使用方法有點(diǎn)小小的不一樣。Service即“服務(wù)”的意思,既然是服務(wù),那么Service將是一個(gè)生命周期長(zhǎng)而且沒(méi)有用戶(hù)界面的程序。然而,音樂(lè)重放這個(gè)功能并沒(méi)有對(duì)應(yīng)的activity,因?yàn)槭褂谜邥?huì)認(rèn)為在導(dǎo)航到其他屏幕時(shí)音樂(lè)應(yīng)該還在播放。同時(shí),系統(tǒng)也將保持這個(gè)service一直執(zhí)行,直到這個(gè)service運(yùn)行結(jié)束。當(dāng)連接到一個(gè)service之后,還可用service提供的接口與它進(jìn)行通訊。 Java簡(jiǎn)介Java是一種簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、安全的、可移植的、性能?yōu)異的多線(xiàn)程語(yǔ)言。Java具有如下特點(diǎn):l 簡(jiǎn)單性Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,它通過(guò)提供最基本的方法來(lái)完成指定的任務(wù),開(kāi)發(fā)者只需知道一些概念就能夠編出一些應(yīng)用程序。l 面向?qū)ο笳Z(yǔ)言Java的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類(lèi)機(jī)制以及動(dòng)態(tài)的接口模型。l 健壯性Java語(yǔ)言被病毒感染和破壞得最少。l 多線(xiàn)程設(shè)計(jì)Java的目標(biāo)之一,就是為了滿(mǎn)足人們對(duì)創(chuàng)建交互式網(wǎng)上程序的需要。多線(xiàn)程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。在網(wǎng)絡(luò)上的其他地方讀取大量的數(shù)據(jù),之后把該數(shù)據(jù)寫(xiě)入硬盤(pán)上的數(shù)據(jù)庫(kù)內(nèi),一般的設(shè)計(jì)就是把數(shù)據(jù)讀入內(nèi)存中的某種集合內(nèi),對(duì)這些數(shù)據(jù)執(zhí)行某些操作,之后把數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)。這種操作可能執(zhí)行很多次,在像C++這些不提供自動(dòng)垃圾搜集的語(yǔ)言中,手工清空或刪除集合數(shù)據(jù)結(jié)構(gòu)邏輯上的一點(diǎn)點(diǎn)缺陷就可能導(dǎo)致大量的內(nèi)存被錯(cuò)誤地收回或丟失。 開(kāi)發(fā)環(huán)境 開(kāi)發(fā)環(huán)境變量配置 JDK配置 右鍵點(diǎn)擊計(jì)算機(jī)屬性高級(jí)系統(tǒng)設(shè)置,點(diǎn)擊下面的環(huán)境變量,在下面的“系統(tǒng)變量”處選擇新建在變量名處輸入JAVA_HOME,并將JDK所在地址填入變量值中,確定即可,如圖21所示。%JAVA_HOME%/lib/,確定即可,如圖22所示。 圖23 JDK配置3然后開(kāi)始—運(yùn)行cmd,輸入java或者javac看看有沒(méi)有效果,如果出現(xiàn)一大堆其它的東西,那就好了,如果出現(xiàn)類(lèi)似xxx不是內(nèi)部或者外部命令之類(lèi)的,那就說(shuō)明你的設(shè)置有問(wèn)題,看看哪里出現(xiàn)問(wèn)題然后加以改正。圖24 SDK配置1 然后找到Path,在Path最后加上。 圖25 SDK配置2然后測(cè)試環(huán)境變量是否配置成功,在cmd中輸入adb出現(xiàn)一堆東西,說(shuō)明環(huán)境變量配置成功。 還需要將Android SDK插入到Eclipse中,打開(kāi)Eclipse后,點(diǎn)擊菜單欄的Window—Preferences然后點(diǎn)擊Android,在SDK Location輸入SDK存放的位置,點(diǎn)擊Apply則會(huì)顯示現(xiàn)有的Android的模擬器版本,如圖26所示。 第三章 游戲設(shè)計(jì) 游戲需求分析玩家是通過(guò)對(duì)小人的移動(dòng)操作來(lái)控制推動(dòng)箱子的,并且玩家需要避過(guò)障礙物以及死角,才能將其推放到指定位置從而達(dá)到過(guò)關(guān)的目的。游戲功能需求如下所示:游戲界面需求:簡(jiǎn)潔美觀的用戶(hù)界面,可以帶給用戶(hù)自然清晰的畫(huà)面。這方面主要要做的工作是設(shè)計(jì)游戲各關(guān)倉(cāng)庫(kù)的形狀、大小、可通過(guò)區(qū)域,以及各關(guān)中箱子的初始位置與目的地,移動(dòng)中的箱子與終點(diǎn)上的箱子要所有區(qū)別,因此需要兩不同的圖片以示區(qū)別。顯示需求:當(dāng)所有箱子都到達(dá)指定位置后即可過(guò)關(guān),若進(jìn)入死角則無(wú)法通過(guò)過(guò)關(guān)卡,需要進(jìn)行退出操作從菜單界面來(lái)重新挑戰(zhàn)游戲。根據(jù)一般玩手機(jī)游戲的流程,玩家一般是先進(jìn)入一個(gè)歡迎動(dòng)畫(huà)界面,等待動(dòng)畫(huà)結(jié)束或者直接點(diǎn)擊畫(huà)面后進(jìn)入游戲的菜單界面,在菜單界面,玩家可以進(jìn)行開(kāi)始游戲、聲音開(kāi)關(guān)、游戲說(shuō)明、退出游戲操作,從菜單界面點(diǎn)擊開(kāi)始游戲進(jìn)入游戲界面開(kāi)始游戲,在游戲界面里,玩家還可以退到菜單界面,本游戲軟件也將遵循該流程。該模塊包括屏幕初始化和游戲第一關(guān)的初始化。l 畫(huà)圖模塊。l 移動(dòng)箱子模塊。l 移動(dòng)小人模塊。l 音樂(lè)模塊。 游戲的類(lèi)框架設(shè)計(jì)表31 游戲的類(lèi)框架公共類(lèi)歡迎界面相關(guān)類(lèi)菜單界面相關(guān)類(lèi)游戲界面相關(guān)類(lèi)PushBoxActivityWeleViewMenuViewGameViewMySpriteWeleViewGoThreadMenuViewGoThreadMapListBoxThreadKeyThreadWeleViewDrawThreadMenuViewDrawThreadSpriteThreadSpriteMoveThreadGameViewDrawThread 算法的設(shè)計(jì)該游戲沒(méi)有涉及到復(fù)雜的算法設(shè)計(jì),關(guān)鍵在于對(duì)地圖矩陣的操作。 游戲過(guò)程中,最為主要的地方在于對(duì)地圖矩陣,以及小人狀態(tài)信息(包括位置、行走狀態(tài)等)的維護(hù),小人每行走一步,就更新一次地圖信息和小人狀態(tài)信息。為保存小人信息,特別開(kāi)設(shè)了一個(gè)MySprite類(lèi),該類(lèi)主要作用就是保存玩家每一步的游戲狀態(tài),便于撤銷(xiāo)。l 小人每次移動(dòng)時(shí),四周的物體如下圖:小人地面移動(dòng)到合適位置的箱子未在合適位置的箱子子墻壁箱子應(yīng)擺放到的位置 圖32 主角四周物體l 當(dāng)小人是在移動(dòng)箱子時(shí),箱子四周有以下幾種物體: 箱子箱子應(yīng)該擺放到的位置箱子、墻壁地面已擺放到合適位置的箱子未擺放到合適位置的箱子 圖33 箱子四周物體 第四章 游戲的實(shí)現(xiàn) 歡迎界面的實(shí)現(xiàn) 當(dāng)玩家運(yùn)行游戲時(shí),首先看到歡迎界面,歡迎界面是整個(gè)游戲的門(mén)面。歡迎動(dòng)畫(huà)界面是通過(guò)改變動(dòng)畫(huà)線(xiàn)程中圖片的變量值來(lái)改變圖片的位置。菜單界面是由滾動(dòng)的背景圖片、不動(dòng)的背景圖片,和開(kāi)始游戲、聲音開(kāi)、聲音關(guān)、游戲說(shuō)明、退出游戲圖片組成,如圖45所示。 圖46 開(kāi)始游戲 聲音控制玩家進(jìn)入菜單界面時(shí)背景聲音是開(kāi)即顯示的是聲音開(kāi)圖片,菜單界面的背景音樂(lè)會(huì)滾動(dòng)播放,如果玩家想要關(guān)閉聲音,只需點(diǎn)擊聲音開(kāi)圖片就會(huì)關(guān)閉聲音同時(shí)顯示聲音關(guān)圖片,如圖47所示。 圖47 聲音控制 游戲說(shuō)明 當(dāng)玩家點(diǎn)擊游戲說(shuō)明按鈕時(shí)玩家會(huì)進(jìn)入游戲說(shuō)明界面,如圖48所示,游戲說(shuō)明界面是由一張說(shuō)明圖片組成,背景設(shè)置為白色,玩家如果想要離開(kāi)此界面只需點(diǎn)擊屏幕即可回到菜單界面。 圖49 退出游戲 游戲界面的實(shí)現(xiàn)游戲界面實(shí)現(xiàn)包括地圖類(lèi)的實(shí)現(xiàn),角色類(lèi)的實(shí)現(xiàn),鍵盤(pán)監(jiān)聽(tīng)線(xiàn)程的實(shí)現(xiàn),角色移動(dòng)線(xiàn)程的實(shí)現(xiàn)。 圖410 勝利進(jìn)行下一關(guān) 地圖類(lèi)的實(shí)現(xiàn)該類(lèi)中包含了兩個(gè)三維數(shù)組,一個(gè)三維數(shù)組表示第一層地圖即地板層,另一個(gè)三維數(shù)組表示第二層地圖即建筑層。本游戲設(shè)計(jì)了兩個(gè)關(guān)卡。 public static int map2[ ][ ][ ] = {//第二層地圖 { {1,1,1,2, 2, 2, 2, 2,1,1,1,1,1,1}, {1,1,1,2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2}, {2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 1, 0, 2, 0, 0, 2, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 2}, {2, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 1, 0, 2}, {2, 0, 0, 0, 1, 2, 2, 0, 0, 0, 1, 0, 0, 2}, {2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 0, 2}, {2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2,1,1,1}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,1,1,1} }, { {1,1,1,2, 2, 2, 2, 2,1,1,1,1,1,1}, {1,1,1,2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2}, {2, 2, 2, 2, 0, 2, 0, 1, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 2, 0, 2}, {2, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 2, 0, 2}, {2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 2}, {2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2}, {2, 0, 0, 0, 1, 2, 2, 2, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2}, {2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 1, 0, 0, 1, 2, 0, 0, 0, 2, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,1,1,1}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,1,1,1} }}。將小人向上走路、向下走路、向左走路、向右走路、向上推箱子、向下推箱子、向左推箱子、向右推箱子的圖片ID放到數(shù)組中進(jìn)行管理在構(gòu)造器中根據(jù)小人當(dāng)前的位置換算出當(dāng)前實(shí)際坐標(biāo),設(shè)置自己封裝的繪制方法,根據(jù)小人的狀態(tài)進(jìn)行繪制,若小人正在移動(dòng),直接繪制圖片,若小人靜止時(shí),需要進(jìn)行坐標(biāo)修正然后再繪制圖片[13]。 } else{ X = +36*j15*i + 2。 (man, X, Y, paint)。每次循環(huán)需要休眠時(shí)間為150毫秒,當(dāng)需要鍵盤(pán)監(jiān)聽(tīng)時(shí),判斷是推箱子還是走路,然后得到當(dāng)前鍵盤(pán)狀態(tài)碼賦到action中,再對(duì)action進(jìn)行處理判斷上、下、左、右鍵是否被按下。在箱子移動(dòng)時(shí)需要啟動(dòng)箱子的移動(dòng)線(xiàn)程,進(jìn)行箱子的移動(dòng),同時(shí)在移動(dòng)過(guò)程中將鍵盤(pán)的監(jiān)聽(tīng)標(biāo)志位設(shè)為false,此時(shí)失去屏幕監(jiān)聽(tīng)。 角色移動(dòng)線(xiàn)程的實(shí)現(xiàn) 角色移動(dòng)線(xiàn)程給定初始位置和結(jié)束位置的行列,自動(dòng)計(jì)算成實(shí)際坐標(biāo),然后分兩步移動(dòng),當(dāng)距邊界較近時(shí)自動(dòng)滾屏。向下移動(dòng)、向左移動(dòng)、向右移動(dòng)同理。軟件測(cè)試是軟件開(kāi)發(fā)過(guò)程的重要組成部分,
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1