【正文】
if((eventX = START_X)amp。 float eventX = ()。SurfaceView的方法:onTouchEvent(MotionEvent event)可以捕獲鼠標對于屏幕的觸碰事件,在該方法中對于鼠標觸碰的區(qū)域做出判斷如果點擊的為按鈕圖片的位置則會調用圖44中對應的被按下按鈕來顯示,如此顯示使用戶有一個可感受的按鈕被按下的動態(tài)即視感,用戶體驗更好。Monitor類的方法:方法surfaceCreated(SurfaceHolder holder)的主要作用是:在surfaceview創(chuàng)建的繪制SurfaceView的內容。 monitor = new Monitor()。 layout中調用SurfaceView普通的layout設置與直接調用SurfaceView的layout有所不同,一下列出調用SurfaceView的layout的格式:?xml version= encoding=utf8?LinearLayout xmlns:android= android:layout_width=match_parent android:layout_height=match_parent android:orientation=vertical android:id=+id/skyGameStartPicture android:layout_width=wrap_content android:layout_height=wrap_content //LinearLayout此處使用自定義SurfaceView的絕對路徑來編寫開始頁面的layout文件,使得開始頁面直接使用該SurfaceView繪制的Bitmap作為背景圖片來顯示。//設置循環(huán)由于當前應用針對不同的顯示界面(Activity)有不同的背景音樂,因此當前Activity掛起時,對應的背景音樂也要掛起(())。 } catch (IOException e) { // TODO Autogenerated catch block ()。 } catch (SecurityException e) { // TODO Autogenerated catch block ()。 ()。startSound = new MediaPlayer()。另一個存放位置是直接將音頻文件上傳到DDMS的/mnt/sdcard/Music文件夾下,這相當于將該音頻文件放入到了Android手機的SD卡上了,相對于存放位置一來說,該方法在加載Android工程時消耗的時間比較少。 MediaPlayer(媒體播放器) 本應用使用Android的MediaPlayer來演奏每一個頁面的背景音樂。 (intent)。 Intent intent = new Intent(EXIT)。 }}。//設置當前activity調用的layout //其他操作} BroadcastReceiver由于本應用是有多個Activity為了解決多個Activity在其中任意一個Activity結束時都會相應一起退出系統(tǒng),因此針對每一個Activity設置一個BroadcastReceiver來接收廣播,一旦接收到廣播當前Activity自動退出。,默認加載的Activity,代碼如下:activity android:name=.SkyGameStartActivity android:launchMode=singleTask intentfilter action android:name=/ category android:name=/ /intentfilter/activity Activity中注冊layout在SkyGameStartActivity的onCreate方法中設置要顯示的layout,方法如下所示:protected void onCreate(Bundle savedInstanceState) { // TODO Autogenerated method stub (savedInstanceState)。圖43 未被按下的按鈕圖標集圖44 被按下的按鈕圖標集圖45 開始界面背景圖片圖46 開始界面 Android應用程序中,并沒有像C++和Java這樣有main函數(shù)來作為應用程序的入口。在查閱相關資料后才發(fā)現(xiàn)SQLite不支持TOP語句,因此使用語句DESC LIMIT來代替TOP達到了自己想要的只獲得表positor_table中的score字段值最大的前六個記錄信息。Android作為目前主流的移動操作系統(tǒng),完全符合SQLite占用資源少的優(yōu)勢,故在Android平臺上,集成了一個嵌入式關系型數(shù)據(jù)庫—SQLite。 } }}圖42 Android中Activity生命周期狀態(tài)圖 SQLite數(shù)據(jù)庫SQLite,是一款輕量級的關系型數(shù)據(jù)庫。 }finally{ ()。 ()。 } try { ()。 } public void delete(){ String sql = ().getString()。 (new SkyGamePlayer(count,(1),(2)))。 (new SkyGamePlayer(count,(1),(2)))。 if(() 0){ int count = 0。 Cursor cursor = (sql, null)。 } } public ArrayListSkyGamePlayer getPlayers(){ ArrayListSkyGamePlayer players = new ArrayListSkyGamePlayer()。 } catch (Exception e) { // TODO Autogenerated catch block ()。 (sql, null, values)。 if(!()){ ()。 (score,())。 } public void insertPlayer(SkyGamePlayer player){ String sql = ().getString()。 helper = new SkyGameDataBaseHelper(context,1)。 } return instance。 private SkyGameDataBaseHelper helper = null。 private SQLiteDatabase database = null。使用了最簡單的單例,并未從線程安全的角度進行進一步的限制,原因在于考慮到當前應用中只有3個Activity使用了DAO,由圖42可知Activity之間的切換類似于進程對于CPU的占用一樣,當前顯示在界面上的Activity是活動狀態(tài)而其他Activity則是掛起狀態(tài),因此不必擔心它們的線程同時去創(chuàng)建DAO對象以引起當前系統(tǒng)中多個DAO對象的狀況。 (create_table)。public void onCreate(SQLiteDatabase db) { // TODO Autogenerated method stub String create_table = ().getString()。本應用直接創(chuàng)建一個SkyGameDataBaseHelper類繼承Android自帶的數(shù)據(jù)庫操作類SQLiteOpenHelper。用來存儲用戶基本信息的positor_table的字段信息如圖41所示。本項目在開發(fā)環(huán)境:l JDK l Eclipse l Android 數(shù)據(jù)庫設計本應用使用的是Android虛擬機做開發(fā),因此使用的為Android虛擬機中自帶的數(shù)據(jù)庫SQLite。與引導項目設置它提供,以及工具集成、定制XML編輯器和調試輸出窗格,ADT給了你極大的提高在發(fā)展中Android應用程序。擴展能力的Eclipse ADT讓你迅速建立新的Android項目,創(chuàng)建一個應用程序的用戶界面,添加基于安卓框架的API,調試您的應用程序使用Android SDK工具,生成apk文件在使用Eclipse運行Android應用的時候Eclipse會自動的將生成的apk文件自動的注冊到Android虛擬機中。用戶的操作基本可以劃分為“開始游戲”,“設置游戲”,“玩游戲”,“查看分數(shù)”,“退出游戲”這五個用例。玩家點擊應用圖標直接進入應用的開始界面。 玩家信息管理 在游戲結束時對于玩家的名稱和得分進行記錄,并在玩家查看排名情況時,以倒序形式顯示前六名玩家的得分和姓名等信息。 APP應用設置 設置應用系統(tǒng)背景音樂聲音大小和游戲難度。各個Activity之間的切換要快速(PS:它們各自的背景音樂也要隨之切換,給用戶以順暢、自然的感覺)。本系統(tǒng)的功能模塊也根據(jù)Activity的不同來劃分成6個功能模塊。這是本應用對于操作性的要求。 圖21 功能界面示例圖 圖22 游戲界面示例圖 系統(tǒng)性能要求本應用為手機游戲因此對于用戶的操作必須做出立即響應,否則本游戲即為失敗。55基于Android的飛機大戰(zhàn)游戲設計與開發(fā)第2章 系統(tǒng)需求分析 用戶功能需求分析由于本程序簡單易操作,交互性好,對用戶沒什么特別要求?;贓clipse的應用程序的插件開發(fā)諸如Siemens公司的PLM產(chǎn)品Teamcenter的插件級開發(fā)。Eclipse還包括插件開發(fā)環(huán)境,這個組件主要針對希望擴展Eclipse的軟件開發(fā)人員,因為它允許他們構建與Eclipse環(huán)境無縫集成的工具。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。 可行性分析該系統(tǒng)采用Eclipse集成Android ADT為開發(fā)平臺進行APP開發(fā)。游戲的主界面應該力求美觀,賞心悅目,以提高玩家對游戲的興趣。 系統(tǒng)研究目的和意義在如今社會,人們的工作學習壓力逐漸增大,生活節(jié)奏逐漸加快,大多數(shù)人沒有足夠的時間去休閑娛樂,放松自己。對于在外忙碌的人,不可能花費大量時間在娛樂上,大型游戲是行不通的。隨著游戲關卡不斷提高,其難度也更大,刺激性也更強。雖然現(xiàn)在市面上存在著各種各樣的游戲版本,可是飛機游戲其市場還是相當大的。更多的手機用戶希望在工作、學習之余通過方便靈巧可隨身攜帶的儀器休閑娛樂。 Java Programing 。關鍵詞:Android開發(fā);手機游戲;Java;SQLiteIAbstractAndroid has been known for people, after 2011 years of baptism, Android smartphone developing fast . Android occupies a large share in the market . Android game application is successful, it make a person see that mobile games on the Android platform of the huge development space. Based on this,we using Eclipse and Android ADT as integrated development platform, to develop the Android game application.This application for Android plane war games include six operating interface, respectively as the start screen, the game interface and set interface, Win interface, Lose interface. Players can choose interface to play the game. As the mobile phone game background music is indispensable, the application play different background music in different interface, players can also set the size of the background music in setting interface.This application using the Android SurfaceView to draw game interface, game interface pleasing to the eye by people to play. I n order to give players a good game environment , the control module of game should be simple, easy to operate.Keywords : Android Programing。本應用采