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

正文內(nèi)容

基于安卓android的推箱子游戲的設(shè)計畢業(yè)論文(參考版)

2024-11-12 01:34本頁面
  

【正文】 int Y = initY+10*j+25*i。 j[i].length。 i。 ()。游戲畫面繪制時會根據(jù)游戲的狀態(tài)值不同進(jìn)行不同的繪制,狀態(tài)值為 0 時繪制游戲時的信息,狀態(tài)值為 1時繪制游戲勝利時的信息。 此程序包括對PushBoxActivity的引用、初始坐標(biāo)的定義、各個圖片的聲明、箱子的坐標(biāo)、游戲的狀態(tài)值、構(gòu)造器、游戲畫面繪制的實(shí)現(xiàn) 。 游戲地圖實(shí)現(xiàn)是整個游戲過程的核心,由于游戲的整個過程呈現(xiàn)三維立體的效果,所以游戲地圖設(shè)置也是至關(guān)重要的一塊,游戲地圖整體是用二維數(shù)組存儲在文件中的,每次打開游戲會初始化一次地圖文件,游戲地圖分為兩層地板。此類比較簡單,只是規(guī)定了菜單界面背景的移動規(guī)律,即每 300毫秒更新一次圖片坐標(biāo),知道程序結(jié)束為止。 其實(shí)現(xiàn)和歡迎界面線程 WeleViewDrawThread 相似。當(dāng)玩家點(diǎn)擊聲音開關(guān)圖片時, 聲音開始的處理方法為,講聲音標(biāo)志位置翻, 若此時已經(jīng)聲音播放則停止聲音播放 ,若沒有聲音播放,則開始聲音播放。屏幕監(jiān)聽的方法會在 24 被玩家點(diǎn)擊屏幕是被調(diào)用, 包括了開始游戲按鈕,聲音按鈕,游戲說明按鈕和退出游戲按鈕的方法。在該類的構(gòu)造器中包括了刷幀線程進(jìn)行初始化和對圖片資源進(jìn)行初始化。 (6) MenuView的實(shí)現(xiàn) 菜單界面 MenuView繼承自 SurfaceVIew,并且實(shí)現(xiàn)了 。剛進(jìn)入該類的時候狀態(tài)值定義為 0,即木門移動。 (5) WeleViewGoThread的實(shí)現(xiàn) WeleViewGoThread負(fù)責(zé)物體的移動,即物體的坐標(biāo)。 程序中定義 和編寫 了睡眠的時間和循環(huán)標(biāo)記位 實(shí)現(xiàn)的方法,界面的運(yùn)行方式。 該類為線程類,主要負(fù)責(zé)定時調(diào)用一次程序中 onDraw 的方法。在構(gòu)造器中,得到 PushBoxActivity的引用,添加接口的實(shí)現(xiàn) ,初始化繪制線程以及所有圖片的初始化工作。 這個界面繼承自 SurfaceView,并且實(shí)現(xiàn)兩個接口 , OnClickListener。 typeFlag = false。 BoxThread bt = new BoxThread(1,pushBoxActivity,)。 = 23 。 } else{ [][] = 1。 } if(KEY_UP == true) = false。 0x01) != 0) KEY_RIGHT = true。 } else{ KEY_LEFT = false。 } if((action amp。 0x04) != 0) KEY_DOWN = true。 } 22 else{ KEY_UP = false。//得到當(dāng)前鍵盤的狀態(tài)碼 if((action amp。//什么類型。其他方向按鍵被按下時,判斷類似。例如當(dāng)向上鍵被按下時,先判斷是否達(dá)到最上方,若沒到最上方則繼續(xù)判斷是否有箱子 ,若上方有箱子并且箱子上方是空地時,移動箱子,在判斷是否為目的地,若為目的地,將箱子設(shè)為綠色。 在此程序中,睡眠時間設(shè)定為 150ms,并對循環(huán)標(biāo)志、是否監(jiān)聽標(biāo)志和鍵盤各個方向是否按下的變量做出定義。 if(keyCode == 22) action = action | 0x01。 if(keyCode == 20) action = action | 0x04。 return false。 if(keyCode == 22){ action = action amp。 if(keyCode == 21) action = action amp。 if(keyCode == 20) action = action amp。 鍵盤抬起和鍵盤按下的代碼如下: public boolean onKeyUp(int keyCode, KeyEvent event) if(keyCode == 19) action = action amp。 變量定義好之后,初始化游戲中的聲音,設(shè)置為循環(huán)播放。 ( 1) PushBoxActivity 的實(shí)現(xiàn) PushBoxActivity主要是游戲的控制器,其主要功能是各個 view之間的切換。 執(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ā)的類比較多,為了更好的理解各個類在游戲中所扮演的角色,將按照前面的框架分類對各個類的功能進(jìn)行簡要簡紹 。 推箱子游戲主用例的描述。 4退出游戲,點(diǎn)擊此圖標(biāo)退出游戲 。 2)聲音開關(guān),玩家可以選擇是否開大背景音樂。這就要求玩家巧妙的運(yùn)用有限的空間和通道,合理的安排箱子的位置和移動次序才可能完成任務(wù)。 游戲基本功能描述 推箱子是一款來自日本的古老游戲,其設(shè)計目的是訓(xùn)練人的邏輯思維能力。 操作方式,本游戲擬采用手機(jī)鍵盤進(jìn)行操作,對于沒有鍵盤的型號也可以考慮采用虛擬鍵盤。 采用的呈現(xiàn)技術(shù),推箱子游戲一般采用的都是 2D的呈現(xiàn)技術(shù),本案例為了增強(qiáng)游戲的吸引力,擬采用 。考慮到受眾面廣的原因,應(yīng)該將操作方式設(shè)計得更加人性化,畫面更加清新。這方面主要要做的工作主要為設(shè)計游戲各關(guān)倉庫的形狀、大小、可通過區(qū)域,以及各關(guān)中箱子的初始位置與目的地。下面就針對本游戲?qū)ι鲜鰩讉€方面進(jìn)行簡單的介紹,如下所列。所以如果要讓再次被創(chuàng)建的活動跟原來開啟過的一樣,那么在活動之間切換時,就要保存資料 :即在每次活動運(yùn)行到暫?;蛲V?fàn)顟B(tài)時先保存資料,然后在創(chuàng)建時將資料讀出來。如果被回收掉 的活動一旦又重新被調(diào)用時,會像一般啟動一樣再次調(diào)用活動的 onCreate方法。如果程序中有直接調(diào)用 finish方法來關(guān)閉活動的話,系統(tǒng)會跳過先凍結(jié)的階段,直接暫停,停止,然后銷毀。另外按返回鍵也可以回到原來的活動。直到活動 2完成一般啟動流程后,活動 1才會被停止。 (2)調(diào)用另一個活動 調(diào)用另一個活動的基本流程為 onpause(l)一 onCreate(2)一 onstart(2)一 0nResume(2)一 onStop(l)。該流程首先分配資源給這個活動(創(chuàng)建狀態(tài) ),然后將活動的內(nèi)容顯示到屏幕上 (啟動狀態(tài) )。當(dāng)這些優(yōu)先級高的事件處理完后,活動就改進(jìn)入繼續(xù)狀態(tài),此時又取得屏幕的控制權(quán)。當(dāng)用戶按下返回鍵回到上一個活動時,會先到重新啟動狀態(tài),再到一般的啟動狀態(tài)。 (2)可見與不可見 (啟動 /重新啟動 /停止 ) 當(dāng)活動運(yùn)行到啟動狀態(tài)時,就可以在屏幕上看到這個活動。 Adroid活動聲明周期如圖 31: 圖 31 Android活動生命周期 圖 31所示的七個狀態(tài)又可以歸納成三組 : (l)資源分配 (創(chuàng)建 /銷毀 ) 完整的活動生命周期由創(chuàng)建狀態(tài)開始,由銷毀狀態(tài)結(jié)束。要手動終止活動,可以在程序中調(diào)用 finish 方法。處于停止?fàn)顟B(tài)的活動,還可以通過通知來喚醒。 (3)停止?fàn)顟B(tài) 停止?fàn)顟B(tài)是指有其他活動正在執(zhí)行,而這個活動己經(jīng)離開屏幕,不再動作的狀態(tài)。新出現(xiàn)的警告對話框等界面元件蓋住了原來的活動畫面。 (2)暫停狀態(tài) 暫停狀態(tài)是指當(dāng)活動暫時暗下來,退到背景畫面的狀態(tài)。在 Android平臺上,同一個時刻只會有一個活動處于活動或運(yùn)行狀態(tài)。 活動的生命狀態(tài) Android的虛擬機(jī)是使用堆棧管理。開發(fā)者可以在程序中添加一些各狀態(tài)相對應(yīng)的流程,每次活動狀態(tài)改變時,就會執(zhí)行相對應(yīng)的流程。關(guān)于進(jìn)程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動的生命周期。當(dāng)系統(tǒng)內(nèi)存即將不足的時候,會依照優(yōu)先級自動進(jìn)行進(jìn)程的回收。 Android 應(yīng)用程序的生命周期是由 Android 框架進(jìn)行管理,而不是由應(yīng)用程序直接控制。當(dāng)同時執(zhí)行的程序過多,或是關(guān)閉的程序沒有正確釋放掉內(nèi)存,系統(tǒng)運(yùn)行時就會覺得越來越慢,甚至不穩(wěn)定。同時執(zhí)行多個程序有它的明顯好處,但也有它的缺點(diǎn)。撇掉其他功能 不談,手機(jī)的特性,就是應(yīng)該能隨時在未完成目前動作的時候,暫停正在使用的功能,切換到接電話、接收短信模式,而且在接完電話回到應(yīng)用程序時,還希望能看到一樣的內(nèi)容。比如意圖中包含了兩個類別 : LAUNCHER_CATEGORY和 ALTERNATIVEC_CATEGORY,解析得到的目標(biāo)組件必須至少包含這兩個類別。同上,意圖的格式必須出現(xiàn)在目標(biāo)組件的格式列表中。和動作一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含意圖的數(shù)據(jù)類型,否則不能匹配。在這個解析過程中, Android是通過意圖的動作、數(shù)據(jù)類型、類別這三個屬性來進(jìn)行判斷的,判斷方法如下 : 如果意圖指明定了動作,則目標(biāo)組件的意圖過濾器的動作列表中就必須包含有這個動作,否則不能匹配。對于直接意圖, Android不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確, Android需要解析的是那些間接意圖,通過解析 ,將意圖映射給可以處理此意圖的活動、意圖接收器或服務(wù)。 (2)間接意圖 :沒有指定組件屬性的意圖。 Android 中 Intent 的使用 在應(yīng)用中,可以以兩種形式來使用 Intent: (l)直接意圖 :指定了組件屬性的意圖。隨著應(yīng)用不斷的加入到系統(tǒng)中,它們可以添加新的動作、數(shù)據(jù) /數(shù)據(jù)類型和類別來擴(kuò)展這種語言??傊?,動作、數(shù)據(jù) /數(shù)據(jù)類型、類別和附加信息一起形成了一種語言。 附加信息 :是其它所有附加信息的集合。 12 組件 :指定意圖的目標(biāo)組件的類名稱。 數(shù)據(jù)類型 :顯式指定意圖的數(shù)據(jù)類型。例如 LAUNCHER_CATEGORY表示意圖的接受者應(yīng)該在 Launcher中作為頂級應(yīng)用出現(xiàn) 。 其次,是執(zhí)行動作要操作的數(shù)據(jù), Android采 用指向數(shù)據(jù)的一個 URI方式來實(shí)現(xiàn)。該抽象描述的具體內(nèi)容如下 : 首先,它是要執(zhí)行的動作的一個簡要描述,如查看、修改等, Android定義了一套標(biāo)準(zhǔn)動作。系統(tǒng)會調(diào) 用找到的 Activity,即為 detailActivity,最終傳入 Intent, detailActivitv 則會根據(jù)此 Intent 中的描述,執(zhí)行相應(yīng)的操作。因此,意圖在這里起著一個媒體中介的作用,專門提供組件之間互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。在這些組件之間的通訊中,主要是由意圖協(xié)助完成的。 Intent 的詳細(xì)解析 在一個 Android 應(yīng)用中,主要是由四種組件組成的,這四種組件可參考上一節(jié)的內(nèi)容。一個內(nèi)容提供者就是一個類,它實(shí)現(xiàn)了一個標(biāo)準(zhǔn)的方法集合。可以把每個進(jìn)程想像成是一個黑盒子,彼此不會互相影響,連內(nèi)存的資料都無法共享。 內(nèi)容提供者 在 Android中,每個應(yīng)用程序都是有自己的 userID 及在自己的進(jìn)程中執(zhí)行。當(dāng)一個意圖接收器被觸發(fā)時,系統(tǒng)會根據(jù)需要來啟動應(yīng)用程序。意圖接收器并不顯示 UI界面,它是通過 NotificationManager 來通知用戶他們感興趣的事件發(fā)生了。 活動可以在任何時候被一個具有等價意圖過濾器的新活動所替代。隨后,這個新的活動接收到意圖 (myIntent)的通知并開始運(yùn)行。從一個界面跳轉(zhuǎn)到另一個界面是由解析各種意圖實(shí)現(xiàn)的。如上例中所描述,想要正常顯示一個聯(lián)系人信息的界面,必須聲明一個意圖過濾器,它說明當(dāng)有聯(lián)系人數(shù)據(jù)要被在界面上顯示時,知道 如何處理它們。 除此之外,還有一個被稱作意圖過濾器 (IntentFiher)的相關(guān)類。典型的動作類型包括 MAIN、 VIEW、 PICK、 EDIT等等,而動作對應(yīng)的數(shù)據(jù)則以 URI的形式表示。一個意圖描述了一個應(yīng)用程序想要做什么。默認(rèn)情況下, Android會為每個應(yīng)用程序保留從主界面開始的歷史堆棧。用戶可以使用返回鍵使前一個活動重現(xiàn)。在一些情況下,活動能夠返回給它的上級界面一個返回值,例如一個提供給用戶選擇照片的活動可以返回給它的調(diào)用者用戶選擇了哪個照片文件。每個界面其實(shí)都可看作是一個活動。大多數(shù)的應(yīng)用程序通常包括多個界面。每個活動都是 Activity的子類,并實(shí)現(xiàn)了一些獨(dú)有的功能,如管理 UI顯示和 UI的反饋事件。這個配置文件是每個 Android 應(yīng)用程序所必需的。 ①活動 ②意圖接收器 ③服務(wù) ④內(nèi)容提供者 然而,并不是所有的 Android 應(yīng)用程序都必須具備上面的四個組件,可以由上面的一個或幾個來組建。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時也可以定義自己的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)訪問服務(wù)。 (7)內(nèi)容提供者 內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進(jìn)行訪問。 (6)通知 通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互來接收消息。其它的組件可以綁定到一個服務(wù)上來,通過遠(yuǎn)程過程調(diào)用 (RPC)來調(diào)用這個方法。 (5)服務(wù) 服務(wù)是運(yùn)行在后臺的一段代碼。系統(tǒng)將定位到能處理這一 Intent 的代碼 (在當(dāng)前情況下就是瀏覽器 ),并運(yùn)行之。 (4)意圖 9 意圖是一個簡單的消息對象,它表示程序想做某事的 “ 意圖 ” 。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。 (3)視圖 視圖可以將其自身繪制到屏幕上。一個活動就是完成某些工作的代碼塊,這部分工作還可
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1