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

正文內容

基于android平臺連連看游戲設計與實現(xiàn)畢業(yè)論文-預覽頁

2025-07-19 14:24 上一頁面

下一頁面
 

【正文】 第二章 基礎知識與開發(fā)技術這一章介紹了系統(tǒng)的開發(fā)環(huán)境和開發(fā)方法,并且詳細介紹了Android的基本知識、特點、Android平臺的優(yōu)勢和手機開發(fā)的市場價值以及Java技術簡介、開發(fā)的詳細步驟和游戲使用的主要技術問題。Android作為Google企業(yè)戰(zhàn)略的重要組成部分,將進一步推進“隨時隨地為每個人提供信息”這一企業(yè)目標的實現(xiàn),Google的目標是讓移動通信不依賴于設備甚至是平臺。完全整合的全移動功能性產品成為“開放手機聯(lián)盟”的最終目標。應用程序框架及組件。Android應用程序框架之下是一套C/C ++函數(shù)庫,它們服務于Android應用程序組件,其功能通過組件間接提供給開發(fā)者。Linux內核。Android 在Linux 核心的基礎上,提供了各種合用的函數(shù)庫,和一個完整的應用程式框架。Activity具有生命周期,它包含運行、暫停、停止等幾個狀態(tài),狀態(tài)間的轉換可通過調用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop()、onDestory()等方法來實現(xiàn)。常用的View方法有:inflate() (由XML 文件生成View)、onDraw (Canvas)(對View進行填充) 、onMeasure (int,int)(測量View的高度和寬度)、onLayout()(完成View的布局)、onKeyDown(int, KeyEvent)(View中有按鍵操作時被調用)、onFocusChanged (boolean,int)(當View得到或失去關注時被調用)、setOnClilckListener()(設置View點擊事件監(jiān)聽器)。Intent最重要的作用還是加載activity,它是不同activity間的橋梁。其中,Uri標明了ContentProvider存儲的數(shù)據類型,在執(zhí)行訪問方法時都需依據Uri作為路徑標識來確定要訪問哪個ContentProvider[5]。 Android系統(tǒng)特點Android系統(tǒng)具有如下5個特點:1) 開放性。移動設備上的應用程序可以被替換或擴展,即使是撥號程序或主屏幕這樣的核心組件;4) 應用程序可以輕松地嵌入網絡。每個Android應用程序都存在于它自己的世界之中:默認情況下,每個應用程序均運行于它自己的Linux進程中。默認情況下,每個應用程序均被賦予一個唯一的Linux用戶ID,并加以權限設置,使得應用程序的文件僅對這個用戶、這個應用程序可見。 Android手機平臺的優(yōu)勢現(xiàn)在常見的智能手機平臺有:Symbian、Windows Mobile、PALM、Blackberry、iOS等。開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。隨著EDGE、HSDPA這些2G至3G移動網絡的逐步過渡和提升,手機隨意接入網絡已不再是運營商口中的笑談。例如如果你從諾基亞Symbian風格手機一下改用蘋果iPhone,那么你可將Symbian中優(yōu)秀的軟件帶到iPhone上使用,聯(lián)系人等個人資料更是可以方便地轉移。5) 無縫結合的Google應用如今叱咤互聯(lián)網的Google已經走過了10年度的歷史。而新的技術從某種程度上提高了手機設備處理數(shù)據的能力,因而可以在手機上添加許多新的功能,以滿足用戶多樣性需求。Android平臺上的游戲相比應用軟件,不需要進行嚴格的市場細分,不需要針對目標用戶量身定制。綜上所述,Android平臺相比其他智能手機平臺有許多優(yōu)勢,這些優(yōu)勢使Android發(fā)展迅速,而Android游戲作為Android手機最主要的應用,其市場價值有目共睹。在這一前提下,手機終端游戲的開發(fā)成了熱門行業(yè)。游戲連連看只要將相同花色的兩張圖用三根以內的直線連在一起就可以消除,規(guī)則簡單容易上手。游戲制作的目的是滿足了人們休閑的需要,在緊張工作之余休閑類的小游戲能夠給人帶來最大程度的放松,也可以增進人們之間的交流、溝通,通過游戲還可以認識更多的朋友。連連看游戲是一個經典的游戲,它因操作簡單、娛樂性強而廣受歡迎。進行開發(fā)前先要建立合適的開發(fā)環(huán)境,其中基于Java的整合型可擴展平臺Eclipse是我們的首選。Java語言之所以這樣長盛不衰,一是因為其眾多的技術特點與現(xiàn)今的應用十分合拍,可以覆蓋大部分的需求;二是因為SUN公司不斷推出新的版本,完善Java自身的功能。另外現(xiàn)在熱炒的RIA富客戶端的概念下的技術除了AJAX外還有Adobe的Flash/Flex,微軟的Silver Light,SUN的JavaFX等,個人更看好Flash/Flex,原因是Flash插件在瀏覽器端占用率很高[10]。編譯后的字節(jié)碼采用一種針對JVM 優(yōu)化過的機器碼形式;解釋器是JVM 的實現(xiàn)。當然還有Java SE 。開發(fā)工具我了解的有:NetBeans(,做GUI有使用VB的感覺),Eclipse(SWT/JFace這個項目其實就是做Eclipse項目時擴展出來的,所以對SWT/JFace支持的也不錯)。JavaME(Java Platform,Micro Edition)這個版本以前叫做J2ME。這些IDE各有優(yōu)勢劣勢,根據個人開發(fā)的項目來選擇了。這一決定保證了游戲的正常完成,同時也是考慮到了制作時間的限制。進行開發(fā)前先要建立合適的開發(fā)環(huán)境,其中基于Java的整合型可擴展平臺Eclipse是我們的首選。它完全符合面向對象編程的要求,大大的提升了程序編寫的能力。 3) 經濟可行性開發(fā)該系統(tǒng)所需的相關資料可以通過已存在的相關系統(tǒng)進行調查采集,所需的其他應用軟件、硬件系統(tǒng)也易于獲得。畢業(yè)設計是基于一般的連連看游戲規(guī)則與游戲模式完成的。在游戲的初始化階段。這個環(huán)節(jié)保障了該游戲的可玩性和人性化設計。這是最一般的游戲模式。游戲開始以及游戲暫停功能。玩家點擊后切換進入游戲界面。如果玩家臨時有事需要暫停游戲。在一開始進入游戲界面時,會自動播放音樂。游戲開始時,時間顯示100秒。彈出對話框,提示“游戲勝利!重新開始”,點擊確定,開始新的一輪游戲。玩家在游戲過程中,可以點擊菜單按鈕,選擇重新開始游戲、重新排列圖片和退出游戲。如果產生死鎖,系統(tǒng)給予提示,玩家可以通過點擊按鈕重新生成游戲布局并繼續(xù)游戲。否則玩家重新選定消除圖片。本次系統(tǒng)設計總共分為四個模塊:菜單設計、界面設計、算法設計和消息響應設計:菜單設計。算法設計。本次設計的連連看游戲主要設計到一下三個核心算法:游戲布局、連通算法、僵局判定算法。隨著游戲的進展,圖片的消除,圖案節(jié)點將被消除,成為路徑節(jié)點。根據連連看規(guī)則,其可以連接必須符合兩個圖片的畫面一樣,而且兩個圖片所在位置之間連線的轉折點不能超過兩個也就是連線不能超過三條線。僵局判定算法就是要及時的發(fā)現(xiàn)僵局,以便程序產生新的游戲布局,使游戲繼續(xù)下去。對游戲UI、核心算法進行了詳細的解釋。所以開發(fā)前必須先安裝Java 開發(fā)套件(Java Development Kit,JDK)。下載完同樣先解壓縮到適當目錄下。一般使用Eclipse預設的工作目錄即可。選擇HelpSoftware Updates選項,這選項會帶出一個新視窗。4) 下載Android SDK。將解壓縮后的Android SDK檔案夾命名為Android_sdk。 連連看游戲開始界面顯示這部分的代碼全部都寫在布局組建(Layout)里面,LinearLayout可以進行水平布局或豎直布局,如果將LinearLayout的布局方向設置為vertical,那么表明是豎直布局。本程序選擇的是豎直布局。繼續(xù)游戲按鈕在開始時不可用,用戶在游戲中暫停游戲回到菜單時才可見。WRAP_CONTENT意味著當前View的大小只需要包裹住View里邊的內容即可[20]。public static final int STATE_LOSE=3。state變量被初始化為STATE_MENU,這是程序最初始的菜單。并將下載到的10中圖片資源存放在drawable文件夾中。將這些變量定義為靜態(tài)變量,只要程序進程不退出,每次用戶進入程序時都可重復使用這些變量資源,這樣程序的狀態(tài)可以記錄下來,圖標資源也只需要加載一次。如果程序是第一次啟動,則新建游戲控制器對象并加載圖表資源。for(int i=0。還定義了一個shuffle方法,來對圖標進行隨機互換。 連連看在游戲中點擊圖標后的界面上圖為單擊動物頭像的游戲界面,可以明顯地看到圖片四周出現(xiàn)紅色準心。如果用戶在游戲中按了home鍵退到Home界面或通過其他方式切換到其他activity,要暫停游戲。用戶在規(guī)定的時間內沒有完成游戲,此時剩余時間remainTime=0,則STATE_LOSE賦給state,系統(tǒng)得知要顯示游戲失敗的界面,程序回到菜單,提示游戲失敗,并可以選擇開始新游戲或退出,同時播放music2這一段比較憂傷的背景音樂。 (sucess)。所以當我們點擊再玩一遍時,游戲又重新加載一次圖標資源,重新進入了初始化布局界面。每次可以有多個圖片被選中(其實最多應該有兩個,邏輯部分在我們的控制器中實現(xiàn),這里不需要管),所以被選中的圖片坐標用一個list來存儲。Map數(shù)組是游戲的布局數(shù)組,在前面的算法介紹中提到過,是帶邊界的,而邊界如果在界面中與其他位置統(tǒng)一處理會浪費很多屏幕空間,因此通過offsetX、offsetY變量來調整。}}這里說明一個橫向偏移值的計算,縱向同理。因為邊界不需要這么寬,需要將圖片橫坐標向左移的距離為兩者之差。}下面看一下GameView的核心部分,是onDraw方法的實現(xiàn):首先,在被選中的圖片四周畫一個與圖片大小一樣的紅色準心,這樣被選中的圖片有了標記。我們提供的index2screen方法轉換出來的是對應位置的圖片的左上角坐標,需要取中間的坐標。通過onDraw方法知道,這次刷新map數(shù)組對應的位置已經置0,消除效果將在下次刷新視圖時發(fā)生。OnItem ClickListener是個接口。視圖類的onTouchEvent方法里面的ACTION_DOWN事件。這個監(jiān)聽者是在控制器中實現(xiàn)的,后面將會看到。圖片大小設置成45。這個變量上面提到的自定義的視圖,用它來呈現(xiàn)游戲界面。private ListPointpath=new ArrayListPoint()。由于Timer會另起一個線程,而刷新界面需要在UI線程中執(zhí)行,所以程序用到了Handler。在handleMessage方法中對這兩種消息分別處理。還需要更新剩余時間,剩余時間的計算方法remainTime=totalTime((()startTime)/1000);剩余時間的計算方法,得除以1000才是秒計時。remainTime =totalTime。如果你想對游戲數(shù)據持久化,除了activity中的游戲狀態(tài)還需要保存控制其中的map以及remainTime變量。1) 先定義每個節(jié)點的數(shù)據結構,用于記錄每個節(jié)點的信息:typedef struct _CELL_NODE{ int value。 char column。 struct _CELL_NODE *next。}CELL_NODE。如果是路徑節(jié)點,則value為1;如果是圖案節(jié)點,其范圍為[0,Enum],在本次設計的瘋狂連連看中 Enum的數(shù)值為所有配對的可消除圖案組數(shù)目。 int connect_flag 表示連通標記,在路徑搜索中將被用到。typedef struct _CELL_LIST{int count。CELL_NODE *link。隨著游戲的進展,節(jié)點將逐漸從列表中移除,從而成為“路徑”節(jié)點;在某些游戲模式中,例如左移或右移模式,隨著游戲的進展,有些節(jié)點會在列表之間移動;最終游戲結束時該鏈表為空;該鏈表的作用有三個:一是初始化游戲布局時;二是在需要判斷游戲是否“死鎖”時;三是發(fā)生“死鎖”需要重新生成游戲布局時。左節(jié)點: dst_cell = src_cell – 1;右節(jié)點: dst_cell = src_cell 連通算法本次設計的“連連看”中的連通,分為一線連通、二線連通和三線連通:1) 一線連通其充分必要條件是:a兩節(jié)點同行或同列;int row1int column2 = secondcolumn。 = secondrow。 //同行,根據兩節(jié)點的左右關系計算從firstsecond的步長。//在從first到second的遍歷過程中,如果遇到某個節(jié)點不是空白路徑,則肯定不是一線連通,則返回。return ONE_LINE_CONNECT。 說明: ,從A遍歷到B, 其步長為1, 反之為1;從C遍歷到D, 其步長(WIDTH+2), 反之為 (WIDTH+2); 其充分必要條件是: b. 兩節(jié)點的拐角節(jié)點是路徑節(jié)點; 二線連通圖具體實現(xiàn)函數(shù)如下:int check_2_line_connect(CELL_NODE *first, CELL_NODE *second, CELL_NODE **ret_corner){ return MAYBE_CONNECT。return MAYBE_CONNECT。{//判斷拐角節(jié)點與兩節(jié)點是否可以一線連通。return TWO_LINE_CONNECT。amp。} return MAYBE_CONNECT。A與C可以一線連通, B與D可以一線連通;c. C與D可以一線連通。 C和D的位置這些標記了的節(jié)點就是C、D的候選點。ret = check_2_line_connect(first, second, amp。corner1, amp。CHECK_CONNECT_RETURN:produce_path(first, second, corner1, corner2, path, ret)
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1