【正文】
,可以把a(bǔ)ndroid看作是一個類似于windows的操作系統(tǒng)。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。 yang and old。有人說任何一個智能手機(jī)用戶都是一個潛在的游戲玩家,我想搭乘Android的順風(fēng)車,手機(jī)游戲開發(fā)必將大有作為。1976年Gremlin平臺推出了一款經(jīng)典街機(jī)游戲Blockade, 21年后諾基亞基于這個創(chuàng)意推出了世界上第一款最受歡迎的手機(jī)游戲貪吃蛇從而開啟了手機(jī)游戲發(fā)展之先河。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個人或集體,均已在文中作了明確的說明并表示了謝意。發(fā)展到現(xiàn)在,3G手機(jī)游戲已經(jīng)成為當(dāng)今移動游戲領(lǐng)域的主流,Android作為這個時代的弄潮兒正以燎原之勢蔓延開來。[關(guān)鍵詞] Android;手機(jī)游戲;3G;益智類游戲;老少皆宜;Design and Research of Developmental game Based on AndroidSoftware Engineering Major Chen BingAbstract: At home and abroad,the Android has broad prospects,especially in the platform game developers is 1976 the Gremlin platform launched a classic arcade game based on the Nokia Blockade,21 creative has launched the world’s first and most popular mobile phone game Snake,thereby opening the mobile phone game development of now,3G mobile phone games have bee today’s mobile phone game of the mainstream,Android as the era of beachgoers must borrow wind smooth “the immortal sword” as the representative of the mobile phone RPG game has gradually quit the stage,now occupying the main puzzle game slowly,this paper studies the game is just a game,Q version of the game screen style and simple and easy operation is stuitable for any age game player. 《 Empire》 in addition to the Android platform air four ponents, involve custom View drawing some methods and techniques is the focus of the game, called Android system drawing of the API and realize the algorithm, bined with beautiful pictures to achieve virtually any cool effect. People say that any one of the intelligent mobile phone user is a potential game player, I want to take the Android ride, mobile phone game development will acplish much.Key words: Mobile Phone Game。目 錄1 緒論 1 背景 1 Android的崛起 1 國內(nèi)外研究現(xiàn)狀 2 項目研究的主要內(nèi)容 3 本章小結(jié) 32 Android的開發(fā)環(huán)境 3 Android操作系統(tǒng) 3 Android開發(fā)環(huán)境 3 Android開發(fā)環(huán)境變量的配置 3 JDK的配置 3 SDK的配置 5 Eclipse的配置 5 本章小結(jié) 63 Android應(yīng)用程序核心 6 應(yīng)用程序基礎(chǔ) 6 應(yīng)用程序組件 7 Acitivity 7 Service 8 BroadcastReciver 9 ContentProvider 10 本章小結(jié) 114 項目相關(guān)技術(shù) 12 地圖的滑動 12 MusicPlayer 13 本游戲的核心類GameEngine 15 相關(guān)算法研究 16 游戲資源進(jìn)度的加載 16 郵件分頁顯示效果的實現(xiàn) 17 玩家排名列表的實現(xiàn) 18 碰撞檢測 18 按每行指定長度畫字符串 18 根據(jù)一串連續(xù)的數(shù)字圖片,畫出任何數(shù)字 19 圖片的翻轉(zhuǎn)和縮放 20 本章小結(jié) 205 系統(tǒng)測試與運(yùn)行效果截圖 21 選擇方向界面 21 游戲主界面 21 人物信息 22 音樂音效設(shè)置 22 郵件列表 22 照相 23 商店信息 23 飛機(jī)列表 24 航班列表 24 好友列表 256 游戲基本數(shù)據(jù) 25 飛機(jī)解鎖數(shù)據(jù) 25 建筑解鎖數(shù)據(jù) 26 機(jī)場解鎖數(shù)據(jù) 26 飛機(jī)所有數(shù)據(jù) 27結(jié)束語 29參考文獻(xiàn) 30致謝 311 緒論 背景3G(第三代數(shù)字通訊技術(shù))正離我們的生活越來越近,它的到來必將掀起一陣無線通訊的新浪潮,3G是向未來個人通信演進(jìn)的一個重要發(fā)展階段,具有里程碑和劃時代的意義。底層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和Dalvik虛擬機(jī),由C++開發(fā)。學(xué)習(xí)android平臺下的軟件開發(fā)正如以前學(xué)習(xí)windows平臺下的軟件開發(fā)一樣。蘋果以其天才的創(chuàng)新,使得iphone在全球迅速擁有了數(shù)百萬忠實粉絲,而Android作為第一個完整的,開放,免費(fèi)的手機(jī)平臺,使開發(fā)者在為其開發(fā)程序時擁有更大的自由。[3]2010年是android平臺飛速發(fā)展的一年。這不難解釋,畢竟這樣一個完全免費(fèi)并開放源代碼的平臺對于許多制造商來說都極具吸引力。它不僅僅顯示了Android在制造商和消費(fèi)者間的普及度,同時還標(biāo)志著智能手機(jī)正在成為如今社會不可缺少的一部分。Google與開放手機(jī)聯(lián)盟合作開發(fā)了 Android,這個聯(lián)盟由包括中國移動、摩托羅拉、高通、宏達(dá)電和 TMobile 在內(nèi)的 30 多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成。谷歌的目標(biāo)是讓(移動通訊)不依賴于設(shè)備甚至平臺。 項目研究的主要內(nèi)容此游戲主要用到了Android用來畫圖的API,主類繼承view類,重寫其onDraw()方法并另起一個線程對主UI線程更新,實現(xiàn)整個游戲的動態(tài)效果。 ,音效的初始化及播放的類。 ,游戲中為數(shù)不多的幾個activity都存放于此。 系統(tǒng)XP sp2/sp3 32bit 來做講解,其他系統(tǒng)的可以google一下差異,反正都大同小異的。sun官方網(wǎng)站是: 下載后安裝是下的解壓包那就解壓到某目錄,例如解壓到是C:\Program Files\Java\ 右鍵點擊我的電腦 屬性 高級,點擊下面的環(huán)境變量,在下面的“系統(tǒng)變量”處選擇新建在變量名處輸入 JAVA_HOME變量值中輸入剛才的目錄,比如C:\Program Files\Java\ 。具體如下圖22所示圖2312 環(huán)境變量的配置然后開始 運(yùn)行 cmd,輸入java或者javac看看有沒有效果,如果出來一大堆其它的東西,那就好了,如果出現(xiàn)類似xxx不是內(nèi)部或者是外部命令之類的,那就說明你的設(shè)置有問題,看看那里出問題然后加以改正。和jdk一樣,我們也可以測試一下環(huán)境變量是否設(shè)置成功,cmd窗口中輸入android,出現(xiàn)一堆東西,就完成了。3 Android應(yīng)用程序核心 應(yīng)用程序基礎(chǔ) Android的應(yīng)用程序全部都是用Java編程語言所寫的。查看、創(chuàng)建、更新與zip兼容的歸檔文件(zip、jar、apk)。在這里注意的是:tools/目錄指的是android SDK目錄下的/platforms/androidX/tools/。每一個應(yīng)用程序都有自己的Java虛擬機(jī)(VM),所以應(yīng)用程序的代碼是獨立于其他所有的應(yīng)用程序代碼的運(yùn)行。也有可能的是設(shè)置兩個應(yīng)用程序共享一個用戶ID,這種情況下,他們能夠看到對方的文件。onCreate :當(dāng)活動第一次啟動的時候,觸發(fā)該方法,可以在此時完成活動的初始化工作。onPause :當(dāng)一個正在前臺運(yùn)行的活動因為其他的活動需要前臺運(yùn)行而轉(zhuǎn)入后臺運(yùn)行的時候,觸發(fā)該方法。 所以保存狀態(tài)信息是應(yīng)該在onPause時做,而不是onStop時做。onRestart :當(dāng)處于停止?fàn)顟B(tài)的活動需要再次展現(xiàn)給用戶的時候,觸發(fā)該方法。通常情況下,開發(fā)者不需要重寫覆蓋該方法,在默認(rèn)的實現(xiàn)中,已經(jīng)提供了自動保存活動所涉及到的用戶界面組件的所有狀態(tài)信息。【7】() 啟動Service是會經(jīng)歷:() onCreate() onStart()Service running () | onDestroy() Service stop如果Service還沒有運(yùn)行,則android先調(diào)用onCreate()然后調(diào)用onStart();如果Service已經(jīng)運(yùn)行,則只調(diào)用onStart(),所以一個Service的onStart方法可能會重復(fù)調(diào)用多次。這個時候把調(diào)用者(Context,例如Activity)會和Service綁定在一起,Context退出了,Srevice就會調(diào)用onUnbindonDestroy相應(yīng)退出?!?】 BroadcastReciverBrodcastReciver是為了實現(xiàn)系統(tǒng)廣播而提供的組件。 //這里寫你要做的事情 } } 我們可以把廣播接收器注冊到系統(tǒng)里面,可以讓系統(tǒng)知道我們有個廣播接收器。 //onDestroy要注銷廣播 調(diào)用unregisterReceiver(..)函數(shù)。ContentProvider:為存儲和獲取數(shù)據(jù)提供統(tǒng)一的接口。如果有子表,URI為:Public static final Uri CONTENT_URI = (content://)。onFling()是Android手勢中用來接收快速滑動的方法,要實現(xiàn)這樣一個滑動效果需要一下四步, 否則失效。 (2) 設(shè)置layout的onTouch事件: LinearLayout layout = (LinearLayout) findViewById()。 (4)寫onFling()方法: public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if(() () 50 amp。amp。 return (e1, e2, velocityX, velocityY)。里面封裝了一個MediaPlayer對象及幾個對音樂文件進(jìn)行操作的方法。 public Music(Context context) { _context = context。 AssetFileDescriptor afd = (path)。 } catch (IllegalStateException e) { // TODO Autogenerated catch block ()。 setLoop(true)。 } public void setMute(boolean setMute) { _isMute = setMute。 } } public Boolean isPlaying(){ return ()。 _meMediaPlayer=null。而這架飛機(jī)最終翱翔天空,GameEngine提供了核心動力。 ()。 (alphaSize)。 while (mBLoop) { start = ()。 (start)。 // refurbish the screen } }最后,由于本游戲界面繁多,每一個界面都是一個實現(xiàn)了GameView接口的類,[10]到底要實例化誰,將來會不會增加實例化的對象,比如切換界面,這是很容易變化的地方,應(yīng)該考慮用一個單獨的類來做這個創(chuàng)造實例的過程,[10]于是在這個類里面使用了工廠模式用來實現(xiàn)不同游戲界面之間的切換。 ()。 break。 break。 } ()。 }else{ if(_addPercent_per