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

正文內(nèi)容

基于android平臺的2048手機游戲開發(fā)設(shè)計與實現(xiàn)-在線瀏覽

2025-03-07 14:47本頁面
  

【正文】 重置功能 21電子科技大學(xué)中山學(xué)院畢業(yè)設(shè)計(論文) 第1章 緒論第1章 緒論 游戲開發(fā)背景Android 智能手機功能非常強大,具有很高的性價比,非常深受人們的喜愛,可能正式因為如此,在2014年中,Android %很夸張的市場份額,一舉成為使用的人數(shù)最多,市場份額占據(jù)最大的Android 智能手機系統(tǒng)。從全球來看,智能移動終端的娛樂服務(wù)一直被認(rèn)為是帶動移動數(shù)據(jù)業(yè)務(wù)加速并快速發(fā)展的重要力量。近年來,一直伴隨著全球移動網(wǎng)絡(luò)和移動終端性能不斷的提高和完善。手機游戲種類目前已成為人類線上娛樂生活的不可或缺的最主流的載體而存在,現(xiàn)代人對于移動終端的休閑娛樂功能所需求越來越強大,移動終端上的游戲或已以成為了現(xiàn)代人們娛樂生活中不可或缺的一部分了。在市場上成名的手機游戲基本上都是國外游戲公司開發(fā)的,而且很容易辨認(rèn)。而國外開發(fā)者開發(fā)的游戲不同,大型游戲內(nèi)容豐富,情節(jié)完整;小型游戲而從用戶體驗和創(chuàng)意上遠(yuǎn)勝國內(nèi)的開發(fā)者。如果你也是一個數(shù)字疊加的愛好者,或者是比較有天賦的數(shù)學(xué)天才,不過就算不是數(shù)學(xué)的天才,一般的玩家也能夠玩轉(zhuǎn)這款游戲,都會有很大的成功機會。 論文結(jié)構(gòu)本論文主要從下面幾章闡述對于Android 2048游戲的研究與應(yīng)用:第 1 章:緒論,介紹了課題的研究背景、國內(nèi)外研究現(xiàn)狀,課題研究目的和意義、以及本文的結(jié)構(gòu)。第 3 章:可行性分析,對Android 2048游戲進行可行性分析。第 4 章:系統(tǒng)詳細(xì)設(shè)計與實現(xiàn),介紹了程序各個模塊的功能分析以及設(shè)計思路并其相關(guān)實現(xiàn)代碼。第 6 章:心得體會,總結(jié)本文工作成果,并對研究工作做反思和總結(jié)電子科技大學(xué)中山學(xué)院畢業(yè)設(shè)計(論文) 第2章 相關(guān)技術(shù)和理論基礎(chǔ)第2章 相關(guān)技術(shù)和理論基礎(chǔ) Java語言Java語言的前身是Sun Microsystems公司開發(fā)的一種用于智能化家電的名為Oak(橡樹)的語言,它的基礎(chǔ)是當(dāng)時最流行的C和C++語言(Sun公司于2009年4月被Oracle公司收購)。知道1993年,WWW(萬維網(wǎng))迅速發(fā)展,Sun公司發(fā)現(xiàn)可以利用Oak語言的技術(shù)來創(chuàng)造含有動態(tài)內(nèi)容的WWW網(wǎng)頁,于是已受人冷落了的Oak語言又被重新的開發(fā)和改造。終于,在1995年,Java這個被定位于網(wǎng)絡(luò)應(yīng)用的程序設(shè)計語言被正式推出。集成了C++語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C++語言中容易引起錯誤的指針,改以引用取代,同時移除原C++與原來運算符重載,也移除了多重繼承特性,改用接口取代,增加垃圾回收器功能。Sun公司對Java語言的解釋是:“Java編程語言是個簡單、面向?qū)ο?、分布、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言。2001年,當(dāng)時的移動電話吧主NOKIA宣布,到2003年將出售1億部支持Java的手機。Android已發(fā)布的最新版本為Android (Lollipop)。魯賓(Andy Rubin)等人開發(fā)制作,最初開發(fā)這個系統(tǒng)的目的是創(chuàng)建一個數(shù)碼相機的先進操作系統(tǒng);但是后來發(fā)現(xiàn)市場需求不夠大,加上智能手機市場快速成長,于是Android被改造為一款面向智能手機的操作系統(tǒng)。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商成立開放手持設(shè)備聯(lián)盟來共同研發(fā)改良Android系統(tǒng),隨后,Google以Apache免費開放源代碼許可證的授權(quán)方式,發(fā)布了Android的源代碼,讓生產(chǎn)商推出搭載Android的智能手機,Android操作系統(tǒng)后來更逐漸拓展到平板電腦及其他領(lǐng)域上。在2014年Google I/O開發(fā)者大會上Google宣布過去30天里有10億臺Android設(shè)備被激活。 Android系統(tǒng)架構(gòu)(1)應(yīng)用程序?qū)釉搶犹峁┮恍┖诵膽?yīng)用程序包,例如電子郵件、短信、日歷、地圖、瀏覽器和聯(lián)系人管理等。(2)應(yīng)用程序框架層該層是Android應(yīng)用開發(fā)的基礎(chǔ),開發(fā)人員大部分情況是在和她打交道。在Android平臺上,開發(fā)人員可以完全訪問核心應(yīng)用程序所使用的API框架。基于這樣的重用機制,用戶就可以方便地替換平臺本身的各種應(yīng)用程序組件。Android運行時包括核心庫和Dalvik虛擬機,前者既兼容了大多數(shù)Java語言所需要調(diào)用的功能函數(shù),又包括了Android的核心庫,、。(4)Linux內(nèi)核,如安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。驅(qū)動:顯示驅(qū)動、攝像頭驅(qū)動、鍵盤驅(qū)動、WiFi驅(qū)動、Audio驅(qū)動、flash內(nèi)存驅(qū)動、Binder(IPC)驅(qū)動、電源管理等。這些更新版本都在前一個版本的基礎(chǔ)上修復(fù)了Bug并且添加了前一個版本所沒有的新功能。 開發(fā)平臺介紹2048 + + ,模擬測試平臺為Android SDK模擬器,真機測試平臺為ZTEU930HD。Eclipse是一個開放源代碼的項目,任何人都可以下載 Eclipse 的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。同時可以通過開發(fā)新的插件擴展現(xiàn)有插件的功能。在本項目中,Eclipse正是通過第三方插件—ADT實現(xiàn)了開發(fā) Android 應(yīng)用。ADT是Eclipse中構(gòu)建Android應(yīng)用程序IDE插件,ADT擴展了Eclipse的功能,讓開發(fā)人員快速建立新的Android項目、創(chuàng)建應(yīng)用程序的用戶界面。 ADT大大減輕Android應(yīng)用程序的開發(fā)工作量,工具集成XML編輯器,將給開發(fā)人員一個令人難以置信的開發(fā)Android應(yīng)用環(huán)境。 JDKJDK(Java Development Kit) 是 Java 語言的軟件開發(fā)工具包(SDK)。沒有JDK的話,無法編譯Java程序,如果想只運行Java程序,要確保已安裝相應(yīng)的JRE。ADT插件提供了一系列圖形用戶界面組件進行界面編程,所以在技術(shù)上可行。 操作可行性確定軟件產(chǎn)品是否能夠被最終的用戶所接受,用戶是否能操作最終的產(chǎn)品:該游戲在方便易操作的Android手機上運行,方便于玩家操作。電子科技大學(xué)中山學(xué)院畢業(yè)設(shè)計(論文) 第4章 游戲設(shè)計第4章 游戲設(shè)計 游戲規(guī)則(1) 開始時棋盤內(nèi)隨機出現(xiàn)兩個數(shù)字,出現(xiàn)的數(shù)字僅可能為2或4;(2) 玩家可以選擇上下左右四個方向,若棋盤內(nèi)的數(shù)字出現(xiàn)位移或合并,視為有效移動;(3) 玩家選擇的方向上若有相同的數(shù)字則合并,每次有效移動可以同時合并,但不可以連續(xù)合并;(4) 合并所得的所有新生成數(shù)字相加即為該此移動的有效得分;(5) 玩家選擇的方向行或列前方有空格則向空格處位移;(6) 每次有效移動一步,棋盤上的空位(無數(shù)字處)隨機出現(xiàn)一個數(shù)字(依然可能為2或4);(7) 棋盤被數(shù)字填滿,無法進行有效移動,判負(fù),游戲結(jié)束。 系統(tǒng)功能游戲主要分三個顯示模塊分別是是游戲計分,游戲內(nèi)容,游戲菜單。同時保存游戲最高分到本地,下次啟動應(yīng)用時顯示歷史最高分。 詳細(xì)設(shè)計 游戲主界面游戲開始界面為一個類似棋盤4乘4的16宮格,在宮格的左上角顯示再該局游戲內(nèi)的得分,而對應(yīng)的右邊則顯示歷史最高分。首先總體布局是一個線性布局,內(nèi)部包括一個子線性布局和一個表格布局,該子線性布局中包含四個textview,用來顯示當(dāng)前分?jǐn)?shù),scope,最高分,topscope。最后再用一個線性布局顯示下方的兩個按鈕,撤銷和重置。相應(yīng)的數(shù)字對四取余得到該數(shù)字的橫坐標(biāo),除以四得到該數(shù)字的縱坐標(biāo)。當(dāng)方格內(nèi)有數(shù)字時時,將其保存到數(shù)字格列表numberList中。首先定義手指接觸屏幕起始位置的橫坐標(biāo)變量startX,縱坐標(biāo)變量startY,手指離開屏幕的最后位置的橫坐標(biāo)offsetX,縱坐標(biāo)變量offsetY。將offsetX減去startX得到水平方向的偏移量,同理offsetY減去startY得到垂直方向的偏移量。特殊情況:1. 由于人的手指在滑動方向會有偏差,一般不會精準(zhǔn)的向四個方向滑動,肯定會有偏差,所以要判斷手指滑過方向的是水平方向還是垂直方向的意圖,當(dāng)水平方向的偏移量大于垂直方向的偏移量時,表明用戶是水平滑動意圖,當(dāng)垂直方向的偏移量大于水平方向的偏移量,表明用戶是垂直方向滑動的意圖。規(guī)定當(dāng)水平方向的偏移距離大于或者等于水平方向的偏移距離,且當(dāng)偏移小于5時,用戶向上滑動,大于5使,規(guī)定向下滑動;當(dāng)水平方向的偏移距離大于或者等于水平方向的偏移距離,且當(dāng)偏移小于5時,規(guī)定用戶向左滑動,如果大于5,用戶向右滑動。例如用戶向上執(zhí)行一次向左有效滑動時,做一個嵌套循環(huán)得到該方向上索引。用戶所移動的方向上有兩個相同的格子時,首先一次移動中,每個格子最多只能升級一次,獲取當(dāng)前格子的view,并將其置成空白格。然后在空白格列表中加入當(dāng)前格子,在數(shù)字列中刪掉第一個格子,將數(shù)字列表對應(yīng)的內(nèi)容升級。定義一個ListInteger stuffList用于保存所有不為空的格子的坐標(biāo)(在GridLayout中的位置從0到15)。定義以下方法,用于判斷當(dāng)前位置是否為數(shù)字格;將當(dāng)前的格子從數(shù)字列表中去掉;使當(dāng)前的格子對應(yīng)的數(shù)字升級,指數(shù)加1;將當(dāng)前格子對應(yīng)的位置置換為新的位置;通過格子對應(yīng)的位置獲取其對應(yīng)的數(shù)字;通過格子對應(yīng)的橫縱坐標(biāo)來獲取其對應(yīng)的數(shù)字;清空數(shù)字格及其對應(yīng)的數(shù)字;判斷是否還有可以合并的數(shù)字格;獲取對應(yīng)序號格子中的位置;獲取對應(yīng)序號格子中的指數(shù)。然后將當(dāng)前格子的圖片置換為2或者4,在numList中加入該格子的信息,最后在空白列表中去掉這個格子。7) 游戲計分每當(dāng)有相同的數(shù)字合并時,合并所得的所有新生成數(shù)字相加即為該此移動的有效得分。讀取perference文件,如果沒有,則會創(chuàng)建一個名為TopScore的文件,使用Editor類寫入perference文件,用于寫入最高分。至少應(yīng)有一次有效滑動后才能撤銷。取棧中第二個對象即為本次操作之前的界面的記錄。9) 重置功能清空界面,清空數(shù)字,使得分為零,重新初始化。點擊結(jié)束則直接關(guān)閉該游戲。根據(jù)游戲的總體情況,仔細(xì)分析游戲各個步驟的運行可能出現(xiàn)的狀況,對各種情況進行匯總,然后擬定出一份具體測試步驟。根據(jù)擬定好的計劃進行游戲調(diào)試,出現(xiàn)意外情況時(3) 及時記錄。(4) 深度測試。(5) 測試人員。然后由不同的玩家進行測試,集眾人之益,能夠從不同的角度發(fā)現(xiàn)問題,以便更好地改。開始界面如圖所示: 游戲開始(1) 向上滑動,如圖所示: 向上滑動 結(jié)果:正常。(3) 向下滑動,如圖所示: 向下滑動結(jié)果:正常。(5) 點擊“撤銷”224。(6) 點擊“重置”224。程序運行正常,沒有發(fā)現(xiàn)什么錯誤。我以前從來沒有玩過這個游戲,在開發(fā)游戲之前,我先在網(wǎng)上找到該游戲,了解游戲的玩法,自己熟悉之后才開始慢慢琢磨如何布局,如何分析,如何設(shè)計,如何實現(xiàn)默寫模塊功能,就用戶在屏幕上滑動,獲取用戶意圖這一模塊來說,以前感覺很不可思議的事情,經(jīng)過我不斷耐心的學(xué)習(xí),實驗,最終也實現(xiàn)了,感覺挺棒的,通過這一點使我了解到我現(xiàn)在需要學(xué)習(xí)的內(nèi)容還很多,今后我一定積極去學(xué)習(xí)需要學(xué)習(xí)的知識,做到融會貫通,多做項目使自己在實踐中學(xué)習(xí),為將來打好鋪墊。成功的大門永遠(yuǎn)為那些追逐目標(biāo)而奮發(fā)圖強的人而開。 int x = index%4。amp。 if(x==0 amp。 direction==LEFT) return 1。amp。 if(y==3 amp。 direction==DOWN) return 1。 } /** * 用于獲取移動方向上前一個格子的位置 * param index 當(dāng)前格子的位置 * param direction 滑動方向 * return 如果在邊界在返回1 */ public int getBefore(int index,int direction){ int y = index/4。 if(x==0 amp。 direction==RIGHT) return 1。amp。 if(y==3 amp。 direction==UP) return 1。amp。 return indexdirection。 //獲取當(dāng)前格子的view,并將其置成空白格 View thisView = (thisIdx)。 (icons[0])。 ImageView nextImage = (ImageView) ()。 //在空白格列表中,去掉目標(biāo)格,加上當(dāng)前格 ((nextIdx))。 //在數(shù)字格列表中,當(dāng)前格的坐標(biāo)置換成目標(biāo)格的坐標(biāo) (thisIdx, nextIdx)。 //獲取當(dāng)前格子的view,并將其置成空白格 View thisView = (thisIdx)。 (icons[0])。 ImageView nextImage = (ImageView) ()。 //在空白格列表中加入當(dāng)前格 (thisIdx)。 //將數(shù)字列表對應(yīng)的內(nèi)容升級 (nextIdx)。 //更新分?jǐn)?shù) updateScore((int)(2, (nextIdx)))。 if(nextIdx == thisIdx){ //不能移動 return。 }else{ if((thisIdx) == (nextIdx)){ //可以合并 levelup(thisIdx, nextIdx)。 if(before != thisIdx){ //存在可以置換的空白格 replace(thisIdx,before)。 if(nextIdx 0) return thisIdx。 else return nextIdx。 ()。y4。x=0。 Change(thisIdx,direction)。 case LEFT: for(int y=0。y++){
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1