馮晨波++羅嘉煒++姚垚++魏凌華
摘要:該文研究了Android應(yīng)用程序開(kāi)發(fā)的總體架構(gòu)、Android應(yīng)用程序、Activity的界面布局、飛機(jī)飛行狀態(tài)以及碰撞實(shí)現(xiàn)的原理。運(yùn)用eclipse開(kāi)發(fā)軟件,運(yùn)用intent通信來(lái)完成每個(gè)布局界面之間的調(diào)用,在此基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)了基于Android平臺(tái)的飛機(jī)射擊游戲。游戲過(guò)程了用戶控制自己飛機(jī)的坐標(biāo)來(lái)通過(guò)子彈射擊敵機(jī)并使敵機(jī)爆炸的效果。經(jīng)過(guò)最終的測(cè)試,應(yīng)用程序的基本功能均已實(shí)現(xiàn)。
關(guān)鍵詞:Android框架;源代碼;手機(jī)游戲
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)01-0077-02
伴隨著在3G移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,智能手機(jī)越來(lái)越被人們所接受,市場(chǎng)上也出現(xiàn)了各種不同操作系統(tǒng)的智能手機(jī)?,F(xiàn)在的手機(jī)已經(jīng)不僅僅局限于打電話,發(fā)短信,更多的手機(jī)用戶希望可以通過(guò)一些手機(jī)應(yīng)用程序來(lái)打發(fā)自己的閑暇時(shí)間,因此,為了解決用戶的需求和順應(yīng)市場(chǎng)的發(fā)展,本文基于android平臺(tái)設(shè)計(jì)了飛機(jī)射擊游戲。
1 手機(jī)游戲需求分析
隨著智能手機(jī)的快速普及,適用各種手機(jī)操作系統(tǒng)的應(yīng)用軟件也相繼出現(xiàn),手機(jī)游戲作為娛樂(lè)軟件的一種,在移動(dòng)端軟件市場(chǎng)具有很大的份額,尤其以年輕用戶為主。受限于移動(dòng)端運(yùn)行內(nèi)存以及屏幕較小等特點(diǎn),這使得手機(jī)更適合運(yùn)行一些操作簡(jiǎn)捷以及娛樂(lè)性很高的應(yīng)用軟件。移動(dòng)端設(shè)備已經(jīng)成為大多數(shù)人日常必備的工具,因此有著龐大的用戶數(shù)量,所以手機(jī)游戲軟件有著很多的潛在客戶,具有非??捎^的市場(chǎng)潛力。
基于android平臺(tái)的手機(jī)游戲具有簡(jiǎn)單的可操作性,鑒于android平臺(tái)的開(kāi)放性,對(duì)Android游戲的研究具有很大的意義。因此,本例講解通過(guò)一些簡(jiǎn)單的Android相關(guān)技術(shù)來(lái)開(kāi)發(fā)一個(gè)手機(jī)游戲的過(guò)程。
2 Android平臺(tái)簡(jiǎn)介
2.1 Android平臺(tái)框架結(jié)構(gòu)
Android作為一種移動(dòng)端的開(kāi)源的操作系統(tǒng),具有分層的架構(gòu),從其架構(gòu)圖可以很容易看出從高層到底層共分為四個(gè)層次,分別是:Application(應(yīng)用程序)、Application Framework(應(yīng)用程序框架)、Libraries(庫(kù))和Android Runtime(Android運(yùn)行時(shí))、Linux Kernel(Linux內(nèi)核)。如圖1所示。
圖1 android平臺(tái)框架結(jié)構(gòu)
2.2 Android應(yīng)用程序
Activity、Service、Broadcast、Receiver和Content Provider作為Android系統(tǒng)的基本組件,通過(guò)這些組件之間的不同組合即可構(gòu)成應(yīng)用程序,Android應(yīng)用程序沒(méi)有唯一的啟動(dòng)入口,一般由程序設(shè)計(jì)默認(rèn)的Activity作為程序的啟動(dòng)入口,然后用戶可以自主選擇該Activity中的功能組件,組件之間可以通過(guò)Intent來(lái)進(jìn)行會(huì)話,每個(gè)應(yīng)用程序都必須有一個(gè)獨(dú)立的Androidmanifest.xml配置文件,應(yīng)用程序中用到的組件以及這些組件想要實(shí)現(xiàn)的功能都必須在這個(gè)文件中進(jìn)行聲明。
3 游戲設(shè)計(jì)的原理及實(shí)現(xiàn)
3.1 UI界面設(shè)計(jì)
點(diǎn)擊應(yīng)用程序后,將進(jìn)入第一個(gè)交互界面,該交互界面用button組件在main. xml布局文件中通過(guò)線性排列來(lái)實(shí)現(xiàn),用戶四個(gè)選項(xiàng)可供選擇,分別為開(kāi)始游戲,繼續(xù)游戲,游戲設(shè)置和退出游戲。主要關(guān)鍵源代碼如下:
…
…
public Boolean onTouchEvent(Motion Event){
x = (int)enevt.getX();y = (int)enevt.getY();
switch (event.getAtion()){
case.MotionEvent.ACTION_DOWN:
mAnimView.UpdateTouchEvent(x,y,true); break:
case.MotionEvent.ACTION_MOVE: break:
case.MotionEvent.ACTION_UP:
mAnimView.UpdateTouchEvent(x,y,false); break;}
Return false;}
3.3主角飛機(jī)子彈的實(shí)現(xiàn)原理與敵機(jī)的碰撞
游戲運(yùn)行時(shí),飛機(jī)會(huì)不停的自動(dòng)發(fā)射子彈,而敵機(jī)也會(huì)相繼的出現(xiàn),這會(huì)使得屏幕中會(huì)有很多數(shù)量的子彈與敵機(jī),由于有許多數(shù)量的子彈與敵機(jī)需要處理,為了簡(jiǎn)化操作,可以把子彈和敵機(jī)分別作為對(duì)象來(lái)進(jìn)行處理,并為對(duì)象分別設(shè)置方法和屬性來(lái)記錄其位置和與其在屏幕中繪制出來(lái)的區(qū)域,,這樣要處理的碰撞就可以轉(zhuǎn)化比較對(duì)象之間位置或者其繪制區(qū)域是否重疊,當(dāng)位置有所重疊,即可視為碰撞,當(dāng)碰撞發(fā)生時(shí)播放死亡爆炸動(dòng)畫(huà)。
4 結(jié)束語(yǔ)
本文首先論述了Android操作系統(tǒng)的系統(tǒng)架構(gòu)和應(yīng)用程序構(gòu)成,然后介紹了手機(jī)游戲的設(shè)計(jì)原理以及關(guān)鍵代碼。在android模擬機(jī)中自己編寫的應(yīng)用進(jìn)行測(cè)試。經(jīng)過(guò)開(kāi)發(fā)自己完成了一個(gè)相對(duì)比較完整的Android應(yīng)用,在這個(gè)過(guò)程中學(xué)會(huì)了很多關(guān)于Android的知識(shí),比如Android開(kāi)發(fā)環(huán)境搭建,Android的架構(gòu)組成等等。通過(guò)實(shí)踐可以對(duì)Android的理論知識(shí)有進(jìn)一步的理解與感悟。
參考文獻(xiàn):
[1] 靳巖,姚尚朗.Google Android開(kāi)發(fā)入門與實(shí)戰(zhàn)[M]. 北京:人民郵電出版社,2009.
[2] 韓超,梁泉. Android系統(tǒng)原理及開(kāi)發(fā)要點(diǎn)詳解[M]. 北京:電子工業(yè)出版社,2010
[3] 郭宏志. Android應(yīng)用開(kāi)發(fā)詳解[M]. 北京:電子工業(yè)出版社,2010
[4] Android Developers[EB/OL]. http://developer.android.com/
[5] Google Android Forum[EB/OL]. http://www.androidl.net/
[6] 楊豐盛.Android應(yīng)用開(kāi)發(fā)揭秘[M]. 北京:機(jī)械工業(yè)出版社,2010
[7] 姚顯昊,劉衛(wèi)國(guó). Android的架構(gòu)和應(yīng)用開(kāi)發(fā)研究[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2008,11(3).
[8] 張波,高朝勤,越譯.Google Android基礎(chǔ)教程[M]. 北京:北京人民郵電出版社,2009.