【正文】
th,object_y + object_height)。 ()。下面以小型敵機為例,展示下功能實現(xiàn)方法。為游戲的順利運行提供了堅實的基礎(chǔ)。將道具可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。 問題分析對于這些道具的制造,可以充分運用Java面向?qū)ο蟮脑?,將每個對象分別抽象化,忽略一個道具中與當前目標無關(guān)的那些方面,以便更充分地注意與當前目標有關(guān)的方面。(planefly, fly_x, fly_y currentFrame * fly_height,paint)。 //開始游戲的按鈕(startGame, screen_width / 2 strwid / 2, button_y+ () / 2 + strhei / 2, paint)。(scalex, scaley, 0, 0)。(2) 程序通過調(diào)用ReadView來進行過場動畫界面的初始化操作,在ReadView類中進行初始化時,首先加載圖片資源,然后通過計算屏幕的比例,將圖片資源使用畫筆畫到屏幕上,因考慮到動態(tài)的操作,所有的畫圖操作均在線程中進行定時操作,每隔一定的時間根據(jù)當前的狀態(tài)重新繪制一次,然后通過MotionEvent方法進行定向坐標的按鈕操作,然后發(fā)送消息給消息隊列,從而方便Handler操作。Handler的具體實現(xiàn)核心代碼如下所示:private Handler handler = new Handler(){ Override public void handleMessage(Message msg){ if( == ){ toMainView()。 在初始化Handler對象時重寫的handleMessage方法來接收Message并進行相關(guān)操作。 實現(xiàn)方法在Android中,對于UI的操作通常需要放在主線程中進行操作。結(jié)果就是,響應(yīng)系統(tǒng)回調(diào)的方法,永遠都是在UI線程里運行。當應(yīng)用啟動,系統(tǒng)會創(chuàng)建一個主線程(main thread)。 開場動畫模塊 問題描述開場動畫模塊為整個游戲的入口,在本入口提供給玩家開始游戲、退出游戲的按鈕,本模塊實現(xiàn)的一個大功能就是如何為按鈕實現(xiàn)功能,因為按鈕為圖片控件,并不能通過綁定監(jiān)聽器的方法來做到。 // 繪制文字的區(qū)域public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) public void surfaceCreated(SurfaceHolder arg0)public void surfaceDestroyed(SurfaceHolder arg0) public boolean onTouchEvent(MotionEvent event) public void initBitmap() public void release()public void drawSelf()public void run()public void setScore(int score)5 詳細設(shè)計本飛機大戰(zhàn)游戲的設(shè)計看似簡單,只有那么幾個子模塊,每個子模塊的功能很清晰也很簡單的樣子,但是事實上卻不是這樣的。 private Bitmap button。 private boolean isBtChange。 private float button_y。 private MissileGoods missileGoods。 // 開始/暫停游戲的按鈕圖片 private Bitmap missile_bt。 // 標記游戲運行狀態(tài) private boolean isTouchPlane。 private float play_bt_w。 // 子彈的積分 private int sumScore。 // 中型敵機的積分 private int bigPlaneScore。 // 飛機飛行時的圖片 private Bitmap myplane2。 private long startTime。 //是否為瘋狂狀態(tài) private ListBullet bullets。 //發(fā)射子彈的間隔 private float leftBorder。 private Bitmap boosPlane。 // 對象總的血量 protected boolean isExplosion。 // 對象總的數(shù)量 private Bitmap bigPlane。 // 繪圖線程 protected SurfaceHolder sfh。 // 視圖的高度protected boolean threadFlag。 // 當前動畫幀protected float scalex。 // 按鈕圖片private Bitmap planefly。 // 按鈕的文字private String exitGame = 退出游戲。private float strhei。private float button_x。 // 圖片的坐標private float fly_y。在游戲進行中,會出現(xiàn)音效,每次玩家飛機發(fā)射子彈是都會出現(xiàn)聲音,當飛機爆炸是也會出現(xiàn)相應(yīng)的音效。在玩家飛機出現(xiàn)時飛機連續(xù)發(fā)子彈,只要飛機出現(xiàn),就持續(xù)發(fā)射。該模塊為這些道具初始化了圖片資源以及繪圖方法,并且定義了每個道具的邏輯屬性,以方便游戲操作模塊、分數(shù)統(tǒng)計模塊的調(diào)用。本模塊用于用戶登陸游戲的設(shè)計,該模塊具有初始畫布功能,初始化聲音功能,同時保持屏幕全屏并且屏幕常亮,能繪制飛機的過場動畫以及開始游戲和退出游戲按鈕,如果沒有操作的話,則一直停留在此界面,并且不停的播放飛機大戰(zhàn)的過場動畫,該模塊設(shè)計精良,界面美觀大方,飛機過場動畫流暢。: 系統(tǒng)結(jié)構(gòu)圖 模塊設(shè)計概述,系統(tǒng)雖然主要分為“開場動畫模塊”、“道具制造模塊”、“游戲操作模塊”、“分數(shù)統(tǒng)計模塊”四個主要模塊,但是每個模塊都需要很多特殊的技巧以及算法來保證其的正確實施,同時模塊之間也需要良好的接口配合才行的。增加游戲的趣味性以及可玩性。游戲操作模塊定義的敵機為上下飛行的,都是統(tǒng)一從屏幕上方飛下來,敵機不具備發(fā)射子彈功能,但是當敵機碰撞到玩家飛機后,玩家飛機死亡。該模塊充分運用java面向?qū)ο蟮闹R,合理運用了接口的定義,為每個子彈,飛機都設(shè)置了基類,以方便日后對程序進行調(diào)整。 當游戲結(jié)束后,顯示并保存玩家在游戲中所獲得的分數(shù)。軟件是做給用戶使用的,所以一切都要站在用戶的角度來看問題。 (2)運行穩(wěn)定 一款軟件設(shè)計得不夠好,那么就有可能在運行的時候出現(xiàn)一些不可預(yù)料的錯誤從而造成軟件崩潰。本項目中用戶的需求如下圖所示: 圖 用戶需求用例圖游戲開發(fā)成功后,最終用戶為各個年齡段的人群,用戶范圍相當廣泛。游戲的結(jié)束、開始、動態(tài)信息畫面作為構(gòu)成一個程序都是必不可少的重要部分。手機游戲程序是一項精度要求很高的程序系統(tǒng),因為其代碼利用率很高。這樣可以避免畫圖任務(wù)繁重的時候造成主線程阻塞,從而提高了程序的反應(yīng)速度。 碰撞檢測技術(shù)碰撞檢測在2D/3D游戲中至關(guān)重要,好的碰撞檢測要求人物在場景中可以平滑移動,遇到一定高度內(nèi)的臺階可以自動上去,而過高的臺階則把人擋住,遇到斜率較小的斜坡可以上去,斜率過大則把人擋住,在各種前進方向被擋住的情況下都要盡可能地讓人物沿合理的方向滑動而不是被迫停下。目前Android開發(fā)所用的開發(fā)工具是Eclipse,在Eclipse編譯IDE環(huán)境中,安裝ADT,為Android開發(fā)提供開發(fā)工具的升級或者變更,簡單理解為在Eclipse下開發(fā)工具的升級下載工具[2]。其核心Java API是一些預(yù)定義的類庫,開發(fā)人員需要用這些類來訪問Java語言的功能。它由一個處于操作系統(tǒng)層之上的運行環(huán)境還有開發(fā)者編譯,調(diào)試和運行用Java語言寫的applet和應(yīng)用程序所需的工具組成。最初主要用來Java語言開發(fā),通過安裝不同的插件Eclipse可以支持不同的計算機語言,比如C++和Python等開發(fā)工具。并利用游戲設(shè)計原則,提高游戲的智能,增強游戲的吸引力。并且根據(jù)玩家的進度適當?shù)某霈F(xiàn)道具,或是增強玩家飛機的子彈能力,或是贈予玩家刷屏炸彈,并實時對玩家計分。這就要求玩家巧妙的運用有限的空間和通道,合理的安排飛機的位置才可能完成任務(wù)。而Android作為主流智能手機系統(tǒng)之一,研究和開發(fā)相應(yīng)應(yīng)用游戲是時代發(fā)展的趨勢[13]。與此同時相應(yīng)的減壓放松的方式也慢慢發(fā)生了變化[7]。Android手機游戲應(yīng)用開發(fā)已漸漸占據(jù)市場主流[12]。但在2011年初,這個數(shù)字就已經(jīng)超過了25萬字大關(guān)。在未來的幾年內(nèi),Android手機必定會占據(jù)手機市場的主要份額,所以在這種形式下,Android應(yīng)用的前景也必定是前景一片大好。多家科技公司和手機公司組成的開放手機聯(lián)盟共同研發(fā),將大大降低新型手機設(shè)備的研發(fā)成本,完全整合的全移動功能性產(chǎn)品成為開放手機聯(lián)盟的最終目標[5]。 Android游戲的研究現(xiàn)狀A(yù)ndroid一詞本意是指機器人,同時也指Google于2007年11月5日推出的開源手機操作系統(tǒng)。本游戲利用Android開發(fā)語言,完成一個基于Android的飛行戰(zhàn)斗類游戲開發(fā)。飛機大戰(zhàn)是一款來自紅白機時期就非常盛行的游戲,其設(shè)計目的是訓(xùn)練人的應(yīng)變能力。s position was likely to plete the task. With the development of puter games , a lot of programming enthusiasts based on the idea of the game developed various versions , all types of aircraft game. This includes a lot of phone version of the achievement , along with the continuous development of Android SDK technology , a number of Androidbased applications have continued to emerge , and soon World War II aircraft will be pushed into millions of households. This is the Android Android aircraft on the basis of the design based on the initial interface is divided into the game , sound modules, game modules, module manufacturing aircraft shells of four modules design and realization .This paper first discusses the background and status of android system , and then a brief introduction to the technology and analysis for android android , and describes the structure of android applications. In program development , designing a good game with a first class frame, and then realize the function of each class will be realized in accordance with the code and write .Keywords:android games, android aircraft ace, smartphones 目錄1 引言 1 系統(tǒng)簡介 1 Android游戲的研究現(xiàn)狀 1 關(guān)于飛機大戰(zhàn)游戲設(shè)計 2 2 3 32 開發(fā)環(huán)境及相關(guān)技術(shù) 4 開發(fā)環(huán)境 4 相關(guān)技術(shù)與工具 4 Eclipse 4 JDK 4 ADT 4 5 SurfaceView 53 需求分析 6 系統(tǒng)功能需求 6 業(yè)務(wù)需求分析 7 用戶需求分析 7 功能需求分析 7 功能劃分概圖 94 概要設(shè)計 10 總體設(shè)計 10 系統(tǒng)流程 10 系統(tǒng)詳細結(jié)構(gòu) 11 模塊設(shè)計概述 12 開場動畫模塊 12 道具制造模塊 12 游戲操作模塊 13 分數(shù)統(tǒng)計模塊 13 數(shù)據(jù)結(jié)構(gòu)及接口定義 145 詳細設(shè)計 20 開場動畫模塊 20 問題描述 20 問題分析 20 實現(xiàn)方法 21 道具制造模塊 24 問題描述 24 問題分析 24 實現(xiàn)方法 24 游戲操作模塊 28 問題描述 28 問題分析 28 實現(xiàn)方法 28 分數(shù)統(tǒng)計模塊 35 問題描述 35 問題分析 35 實現(xiàn)