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

正文內(nèi)容

基于android的推箱子游戲設(shè)計(jì)畢業(yè)論文-文庫吧

2025-06-13 00:16 本頁面


【正文】 動(dòng)作對(duì)應(yīng)的數(shù)據(jù)則以URI的形式表示[6]。數(shù)據(jù)是應(yīng)用的核心。在Android中,默認(rèn)使用SQLite作為系統(tǒng)數(shù)據(jù)庫。但是在Android中,使用方法有點(diǎn)小小的不一樣。在Android中,每一個(gè)應(yīng)用都運(yùn)行在各自的進(jìn)程中,當(dāng)一個(gè)應(yīng)用需要訪問其他應(yīng)用的數(shù)據(jù)時(shí),也就是數(shù)據(jù)需要在不同的虛擬機(jī)之間傳遞,這樣的情況操作起來可能有些困難(正常情況下,你不能讀取其他應(yīng)用的db文件),ContentProvider正是用來解決在不同的應(yīng)用包之間共享數(shù)據(jù)的工具[7]。Service即“服務(wù)”的意思,既然是服務(wù),那么Service將是一個(gè)生命周期長而且沒有用戶界面的程序。如一個(gè)正在從播放列表中播放歌曲的媒體播放器,在這個(gè)媒體播放器應(yīng)用中,應(yīng)該會(huì)有多個(gè)activity,讓使用者可以選擇歌曲并播放歌曲。然而,音樂重放這個(gè)功能并沒有對(duì)應(yīng)的activity,因?yàn)槭褂谜邥?huì)認(rèn)為在導(dǎo)航到其他屏幕時(shí)音樂應(yīng)該還在播放。在這個(gè)例子中,( )來啟動(dòng)一個(gè)service,從而可以在后臺(tái)保持音樂的播放。同時(shí),系統(tǒng)也將保持這個(gè)service一直執(zhí)行,直到這個(gè)service運(yùn)行結(jié)束。另外,( )方法連接到一個(gè)service上(如果這個(gè)service當(dāng)前還沒有處于啟動(dòng)狀態(tài),則將啟動(dòng)它)。當(dāng)連接到一個(gè)service之后,還可用service提供的接口與它進(jìn)行通訊。以媒體播放器為例,我們還可以執(zhí)行暫停、重播等操作[8]。 Java簡介Java是一種簡單的、面向?qū)ο蟮?、分布式的、安全的、可移植的、性能?yōu)異的多線程語言。它以其強(qiáng)安全性、平臺(tái)無關(guān)性、硬件結(jié)構(gòu)無關(guān)性、語言簡潔、面向?qū)ο蟮奶攸c(diǎn),在網(wǎng)絡(luò)編程語言中占據(jù)了無可比擬的優(yōu)勢,成為實(shí)現(xiàn)電子商務(wù)系統(tǒng)的首選語言[9]。Java具有如下特點(diǎn):l 簡單性Java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的任務(wù),開發(fā)者只需知道一些概念就能夠編出一些應(yīng)用程序。Java程序相對(duì)較小,其代碼能夠在小機(jī)器,例如手機(jī)上運(yùn)行,這應(yīng)該是大家經(jīng)??梢钥吹降?。l 面向?qū)ο笳Z言Java的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡單的類機(jī)制以及動(dòng)態(tài)的接口模型。對(duì)象中封裝了它的狀態(tài)變量和相應(yīng)的方法,實(shí)現(xiàn)了模塊化和信息的隱藏;而類則是提供了對(duì)象的原型,并且通過繼承的機(jī)制,子類可以使用父類所提供的方法,以實(shí)現(xiàn)代碼的復(fù)用。l 健壯性Java語言被病毒感染和破壞得最少。大部分病毒程序常用的方法就是通過巧妙地運(yùn)用地址變量如指針來獲取計(jì)算機(jī)的資源,而Java正好放棄了難學(xué)和危險(xiǎn)的指針功能,從而使Java更安全。l 多線程設(shè)計(jì)Java的目標(biāo)之一,就是為了滿足人們對(duì)創(chuàng)建交互式網(wǎng)上程序的需要。多線程就是為實(shí)現(xiàn)這個(gè)目標(biāo)而設(shè)計(jì)出來的,它使用Java編寫出來的應(yīng)用程序可以同時(shí)執(zhí)行多個(gè)任務(wù)。多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。l 自動(dòng)內(nèi)存管理可以說自動(dòng)內(nèi)存管理是Java健壯性的體現(xiàn),內(nèi)存管理是很多種應(yīng)用程序內(nèi)的關(guān)鍵因素。在網(wǎng)絡(luò)上的其他地方讀取大量的數(shù)據(jù),之后把該數(shù)據(jù)寫入硬盤上的數(shù)據(jù)庫內(nèi),一般的設(shè)計(jì)就是把數(shù)據(jù)讀入內(nèi)存中的某種集合內(nèi),對(duì)這些數(shù)據(jù)執(zhí)行某些操作,之后把數(shù)據(jù)寫入數(shù)據(jù)庫。在數(shù)據(jù)寫入數(shù)據(jù)庫后,在下一批處理之前,臨時(shí)存儲(chǔ)數(shù)據(jù)的集合必須清空舊數(shù)據(jù),或者被刪除后再建。這種操作可能執(zhí)行很多次,在像C++這些不提供自動(dòng)垃圾搜集的語言中,手工清空或刪除集合數(shù)據(jù)結(jié)構(gòu)邏輯上的一點(diǎn)點(diǎn)缺陷就可能導(dǎo)致大量的內(nèi)存被錯(cuò)誤地收回或丟失。Java的自動(dòng)內(nèi)存管理正好解決這一點(diǎn),它使程序員不用再為內(nèi)存管理寫大量的代碼[10]。 開發(fā)環(huán)境 開發(fā)環(huán)境變量配置 JDK配置 右鍵點(diǎn)擊計(jì)算機(jī)屬性高級(jí)系統(tǒng)設(shè)置,點(diǎn)擊下面的環(huán)境變量,在下面的“系統(tǒng)變量”處選擇新建在變量名處輸入JAVA_HOME,并將JDK所在地址填入變量值中,確定即可,如圖21所示。圖21 JDK配置1確定后就會(huì)返回環(huán)境變量界面,再新建一個(gè)系統(tǒng)變量名為classpath,變量值為%JAVA_HOME%/lib/。%JAVA_HOME%/lib/,確定即可,如圖22所示。圖22 JDK配置2確定后仍會(huì)返回環(huán)境變量界面,然后再找到Path的變量,雙擊或者點(diǎn)擊編輯,在變量名最前面加上%JAVA_HOME%/bin,確定即可,如圖23所示。 圖23 JDK配置3然后開始—運(yùn)行cmd,輸入java或者javac看看有沒有效果,如果出現(xiàn)一大堆其它的東西,那就好了,如果出現(xiàn)類似xxx不是內(nèi)部或者外部命令之類的,那就說明你的設(shè)置有問題,看看哪里出現(xiàn)問題然后加以改正。 SDK配置新建一個(gè)系統(tǒng)變量Android,并將SDK文件夾中的platformtools和tools的地址填入變量值中,以分號(hào)來隔開,確定即可,如圖24所示。圖24 SDK配置1 然后找到Path,在Path最后加上。%Android%,如圖25所示。 圖25 SDK配置2然后測試環(huán)境變量是否配置成功,在cmd中輸入adb出現(xiàn)一堆東西,說明環(huán)境變量配置成功。 Eclipse配置 首先需要添加Eclipse插件ADT,在打開Eclipse后,點(diǎn)擊菜單欄的Help—Install New Software...然后點(diǎn)擊Add會(huì)出來一個(gè)Add Site的窗口,這里Name輸入ADT,Location中輸入ADT在電腦中的地址,然后就等待連接了,連接上將Developer Tools全都選中accept,finish就可以了,完成后會(huì)提示重啟Eclipse來加載插件,重啟,就可以用了。 還需要將Android SDK插入到Eclipse中,打開Eclipse后,點(diǎn)擊菜單欄的Window—Preferences然后點(diǎn)擊Android,在SDK Location輸入SDK存放的位置,點(diǎn)擊Apply則會(huì)顯示現(xiàn)有的Android的模擬器版本,如圖26所示。圖26 Eclipse配置 應(yīng)用環(huán)境。 第三章 游戲設(shè)計(jì) 游戲需求分析玩家是通過對(duì)小人的移動(dòng)操作來控制推動(dòng)箱子的,并且玩家需要避過障礙物以及死角,才能將其推放到指定位置從而達(dá)到過關(guān)的目的。如果玩家將箱子推入死角導(dǎo)致箱子無法移動(dòng)或不能移動(dòng)到指定位置則闖關(guān)失敗,可以通過退出操作進(jìn)入菜單界面來重新挑戰(zhàn)游戲。游戲功能需求如下所示:游戲界面需求:簡潔美觀的用戶界面,可以帶給用戶自然清晰的畫面。游戲情節(jié)需求:本游戲?yàn)檩p量級(jí)的益智游戲,因此不存在很復(fù)雜的情節(jié)。這方面主要要做的工作是設(shè)計(jì)游戲各關(guān)倉庫的形狀、大小、可通過區(qū)域,以及各關(guān)中箱子的初始位置與目的地,移動(dòng)中的箱子與終點(diǎn)上的箱子要所有區(qū)別,因此需要兩不同的圖片以示區(qū)別。鍵盤處理事件:控制小人與箱子的移動(dòng),通過鍵盤方向鍵(上、下、左、右鍵)對(duì)小人進(jìn)行上、下、左、右的移動(dòng),并且能夠推動(dòng)箱子。顯示需求:當(dāng)所有箱子都到達(dá)指定位置后即可過關(guān),若進(jìn)入死角則無法通過過關(guān)卡,需要進(jìn)行退出操作從菜單界面來重新挑戰(zhàn)游戲。 游戲設(shè)計(jì) 系統(tǒng)設(shè)計(jì)思想 本次設(shè)計(jì)主要是設(shè)計(jì)一個(gè)能夠在Android手機(jī)上運(yùn)行的推箱子游戲。根據(jù)一般玩手機(jī)游戲的流程,玩家一般是先進(jìn)入一個(gè)歡迎動(dòng)畫界面,等待動(dòng)畫結(jié)束或者直接點(diǎn)擊畫面后進(jìn)入游戲的菜單界面,在菜單界面,玩家可以進(jìn)行開始游戲、聲音開關(guān)、游戲說明、退出游戲操作,從菜單界面點(diǎn)擊開始游戲進(jìn)入游戲界面開始游戲,在游戲界面里,玩家還可以退到菜單界面,本游戲軟件也將遵循該流程。 游戲總體設(shè)計(jì)游戲界面 游戲開始界面菜單界面歡迎動(dòng)畫界面退出退出游戲游戲說明聲音控制開始游戲圖31 游戲總體設(shè)計(jì) 系統(tǒng)功能模塊設(shè)計(jì)本程序包括5個(gè)模塊,分別是初始化模塊、畫圖模塊、移動(dòng)箱子模塊、移動(dòng)小人模塊和音樂模塊,各個(gè)模塊的功能描述如下:l 初始化模塊。該模塊包括屏幕初始化和游戲第一關(guān)的初始化。屏幕初始化用于顯示歡迎動(dòng)畫,游戲第一關(guān)的初始化是構(gòu)建每一關(guān)的關(guān)卡。l 畫圖模塊。該模塊主要是被其他模塊調(diào)用,用于畫墻、在空地畫箱子、在目的地畫箱子、畫小人和畫目的地。l 移動(dòng)箱子模塊。該模塊用于移動(dòng)箱子,包括目的地之間、空地之間和目的地與空地之間的箱子移動(dòng)。l 移動(dòng)小人模塊。該模塊用于控制小人的移動(dòng),從而推動(dòng)箱子到達(dá)目的地。l 音樂模塊。該模塊為游戲提供背景音樂、小人推箱子的聲音和游戲勝利的聲音。 游戲的類框架設(shè)計(jì)表31 游戲的類框架公共類歡迎界面相關(guān)類菜單界面相關(guān)類游戲界面相關(guān)類PushBoxActivityWeleViewMenuViewGameViewMySpriteWeleViewGoThreadMenuViewGoThreadMapListBoxThreadKeyThreadWeleViewDrawThreadMenuViewDrawThreadSpriteThreadSpriteMoveThreadGameViewDrawThread 算法的設(shè)計(jì)該游戲沒有涉及到復(fù)雜的算法設(shè)計(jì),關(guān)鍵在于對(duì)地圖矩陣的操作。游戲中用一個(gè)MapList類操作地圖,其中有兩個(gè)三維數(shù)組記錄游戲地圖信息,一個(gè)三維數(shù)組表示第一層地圖即地板層,另一個(gè)三維數(shù)組表示第二層地圖即建筑層,三維矩陣便于管理,如果要加入新關(guān)卡,只需要在三維矩陣中加入二維矩陣就可以了[11]。 游戲過程中,最為主要的地方在于對(duì)地圖矩陣,以及小人狀態(tài)信息(包括位置、行走狀態(tài)等)的維護(hù),小人每行走一步,就更新一次地圖信息和小人狀態(tài)信息。另外一個(gè)比較重要的地方是游戲狀態(tài)的保存方面[12]。為保存小人信息,特別開設(shè)了一個(gè)MySprite類,該類主要作用就是保存玩家每一步的游戲狀態(tài),便于撤銷。邏輯判斷過程中,需要對(duì)地圖進(jìn)行維護(hù),主要是通過小人的移動(dòng)位置進(jìn)行更新的。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è)游戲的門面。本游戲的歡迎動(dòng)畫首先是木門打開如圖41,接著是鐵門打開如圖42,最后是墻打開如圖43,所有門打開后就會(huì)顯示一個(gè)有山有水的圖片如圖44。歡迎動(dòng)畫界面是通過改變動(dòng)畫線程中圖片的變量值來改變圖片的位置。 圖41 木門 圖42 鐵門 圖43 墻 圖44 山水圖 菜單界面的實(shí)現(xiàn)玩家在歡迎動(dòng)畫界面需等待30秒方能進(jìn)入菜單界面,也可直接點(diǎn)擊屏幕進(jìn)入菜單界面。菜單界面是由滾動(dòng)的背景圖片、不動(dòng)的背景圖片,和開始游戲、聲音開、聲音關(guān)、游戲說明、退出游戲圖片組成,如圖45所示。圖45 菜單界面 開始
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1