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

正文內(nèi)容

基于安卓android的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā)畢業(yè)論文-文庫(kù)吧

2024-11-11 23:24 本頁(yè)面


【正文】 這是本應(yīng)用對(duì)于操作性的要求。 業(yè)務(wù)流程分析 依據(jù)系統(tǒng)的需求分析,得到系統(tǒng)的流程圖如圖 23 所示: 圖 23 系統(tǒng)流程圖 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 4 第 3 章 系統(tǒng)總體設(shè)計(jì) 系統(tǒng)功能模塊分析 當(dāng)前應(yīng)用使用的 SurfaceView 來(lái)繪制的 頁(yè)面因此相對(duì)來(lái)說(shuō)大部分邏輯都是由Activity來(lái)做處理的。本系統(tǒng)的功能模塊也根據(jù) Activity的不同來(lái)劃分成 6個(gè)功能模塊。 系統(tǒng)管理 各個(gè)操作界面布局適當(dāng),顏色搭配等要美觀。各個(gè) Activity 之間的切換要快速( PS:它們各自的背景音樂(lè)也要隨之切換,給用戶 以 順暢、自然的感覺(jué))。用戶在任何一個(gè)Activity 點(diǎn)擊 “EXIT” 按鈕或 ContextMenu 中的 “ 退出 ” 都要成功的將當(dāng)前應(yīng)用掛起的多個(gè) Acitivity 和當(dāng)前 Android 虛擬機(jī)顯示的 Activity 順利的停止,并銷毀。 APP 應(yīng)用設(shè)置 設(shè)置應(yīng)用系統(tǒng)背景音樂(lè)聲音大小和游戲難度。 使用 SeekBar 來(lái)控制系統(tǒng)音量,使用 RadioGroup 來(lái)控制飛機(jī)難度。 玩家信息管理 在游戲結(jié)束時(shí)對(duì)于玩家的名稱和得分進(jìn)行記錄,并在玩家查看排名情況時(shí),以倒序形式顯示前六名玩家的得分和姓名等信息。 系統(tǒng)類關(guān)系圖 系統(tǒng)實(shí)體類、邊界類、控制類之間的關(guān)系如圖 31 所示: 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā) 5 圖 31 實(shí)體類、控制類、邊界類之間的關(guān)系 各個(gè)界面類之間的關(guān)系如圖 32 所示: 圖 32 APP邊界類關(guān)系 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 6 系統(tǒng)總體設(shè)計(jì) 系統(tǒng)的中只有 玩家一種用戶,不必向其他的網(wǎng)站或者是教務(wù)系統(tǒng)一樣進(jìn)行身份驗(yàn)證等操作。玩家點(diǎn)擊應(yīng)用圖標(biāo)直接進(jìn)入應(yīng)用的開始界面。用戶的操作總體可以歸并成如 33玩家 用例圖所顯示的內(nèi)容 ,子彈的用例圖如圖 34 所示,飛機(jī)的用例圖如圖 35 所示。 用戶的操作基本可以劃分為 “ 開始游戲 ” , “ 設(shè)置游戲 ” , “ 玩游戲 ” , “ 查看分?jǐn)?shù) ” , “ 退出游戲 ” 這五個(gè)用例。 圖 33 玩家 用例圖 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā) 7 圖 34 子彈用例圖 圖 35 飛機(jī)用例圖 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 8 第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì) 開發(fā)工具簡(jiǎn)介 Android 開發(fā)工具 (ADT)是一個(gè)插件的 Eclipse IDE,目的是給 開發(fā)人員提供 一個(gè)強(qiáng)大的、集成的環(huán)境中構(gòu)建 Android 應(yīng)用程序。 擴(kuò)展能力的 Eclipse ADT 讓你迅速建立新的 Android 項(xiàng)目 ,創(chuàng)建一個(gè)應(yīng)用程序的用戶界面 ,添加基于安卓框架 的 API,調(diào)試您的應(yīng)用程序使用 Android SDK 工具 ,生成 apk 文件在使用 Eclipse運(yùn)行 Android應(yīng)用的時(shí)候 Eclipse會(huì)自動(dòng)的將生成的 apk文件自動(dòng)的注冊(cè)到 Android 虛擬機(jī)中 。 在 Eclipse ADT 發(fā)展與高度推薦 ,是一種最快的方式開始。與引導(dǎo)項(xiàng)目設(shè)置它提供 ,以及工具集成、定制 XML 編輯器和調(diào)試輸出窗格 ,ADT 給了你極大的提高在發(fā)展中 Android應(yīng)用程序。 使用 Eclipse 集成 Android ADT 做 Android 應(yīng)用開發(fā)是目前企業(yè)中常用的 Android應(yīng)用開發(fā)方式。 本項(xiàng)目在開發(fā)環(huán)境: ? JDK ? Eclipse ? Android 數(shù)據(jù)庫(kù)設(shè)計(jì) 本應(yīng)用使用的是 Android 虛擬機(jī)做開發(fā),因此使用的為 Android 虛擬機(jī)中自帶的數(shù)據(jù)庫(kù) SQLite。本應(yīng)用只是在針對(duì)用戶得分及用戶姓名等基本信息進(jìn)行存儲(chǔ),因此數(shù)據(jù)庫(kù)非常簡(jiǎn)單,僅僅是設(shè)計(jì)了一個(gè)用來(lái) 存儲(chǔ)用戶排名信息的表結(jié)構(gòu)。 用來(lái)存儲(chǔ)用戶基本信息的positor_table 的字段信息如圖 41 所示。 CREATE TABLE [positor_table] ( id INTEGER PRIMARY KEY, name VARCHAR(40) NOT NULL, score INTEGER NOT NULL) 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā) 9 圖 41 positor 表 Android 中自帶的 SQLiteOpenHelper 作用 : 一個(gè)幫助類 , 幫助創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)版本管理。 本應(yīng)用直接創(chuàng)建一個(gè) SkyGameDataBaseHelper 類繼承 Android 自帶的數(shù)據(jù)庫(kù)操作類SQLiteOpenHelper。在 onCreate()方法中創(chuàng)建表 positor_table。 public void onCreate(SQLiteDatabase db) { // TODO Autogenerated method stub String create_table = ().getString()。 // CREATE TABLE [positor_table] (id INTEGER PRIMARY KEY,name VARCHAR(40) NOT NULL,score INTEGER NOT NULL)。 (create_table)。 } DAO(數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象 ) 本應(yīng)用中的數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象 SkyGameDataBaseDao 采用了單例模式 , 以保證當(dāng)前應(yīng)用中只存在一個(gè) DAO 數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象。使用了最簡(jiǎn)單的單例,并未從線程安全的角度進(jìn)行進(jìn)一步的限制,原因在于考慮到 當(dāng)前應(yīng)用中只有 3 個(gè) Activity 使用了 DAO,由圖 42 可知Activity 之間的切換類似于進(jìn)程對(duì)于 CPU 的占用一樣,當(dāng)前顯示在界面上的 Activity 是活動(dòng)狀態(tài)而其他 Activity 則是掛起狀態(tài),因此不必?fù)?dān)心它們的線程同時(shí)去創(chuàng)建 DAO 對(duì)象以引起當(dāng)前系統(tǒng)中多個(gè) DAO 對(duì)象的狀況。 public class SkyGameDataBaseDao { private static SkyGameDataBaseDao instance = null。 private SQLiteDatabase database = null。 private Context context = null。 private SkyGameDataBaseHelper helper = null。 public static SkyGameDataBaseDao getInstance (Context context){ if(instance == null){ instance = new SkyGameDataBaseDao(context)。 } 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 10 return instance。 } private SkyGameDataBaseDao(Context context){ = context。 helper = new SkyGameDataBaseHelper(context,1)。 while(( = ())==null)。 } public void insertPlayer(SkyGamePlayer player){ String sql = ().getString()。 ContentValues values = new ContentValues()。 (score,())。 (name, ())。 if(!()){ ()。 } try { ()。 (sql, null, values)。 ()。 } catch (Exception e) { // TODO Autogenerated catch block ()。 }finally{ ()。 } } public ArrayListSkyGamePlayer getPlayers(){ ArrayListSkyGamePlayer players = new ArrayListSkyGamePlayer()。 String sql = ().getString()。 Cursor cursor = (sql, null)。 ()。 if(() 0){ int count = 0。 count++。 (new SkyGamePlayer(count,(1),(2)))。 while(()){ count ++。 (new SkyGamePlayer(count,(1),(2)))。 } } return players。 } 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā) 11 public void delete(){ String sql = ().getString()。 if(!()){ ()。 } try { ()。 (sql)。 ()。 } catch (SQLException e) { // TODO Autogenerated catch block ()。 }finally{ ()。 } } public void close(){ if(()){ ()。 } } } 圖 42 Android 中 Activity 生命周期狀態(tài)圖 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 12 SQLite 數(shù)據(jù)庫(kù) SQLite,是一款輕量級(jí)的 關(guān)系型數(shù)據(jù)庫(kù) 。由于它占用的資源非常少,所以在很多 嵌入式設(shè)備 都是用 SQLite 來(lái)存儲(chǔ)數(shù)據(jù)。 Android 作為目前主流的移動(dòng)操作系統(tǒng),完全符合 SQLite 占用資源少的優(yōu)勢(shì),故在Android 平臺(tái)上,集成了一個(gè) 嵌入式 關(guān)系型數(shù)據(jù)庫(kù) — SQLite。 由于 SQLite 是輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù),它支持的 SQL 語(yǔ)句也是有限的,在使用 SQL語(yǔ)句獲得前 6 名玩家的信息時(shí)直接使用了 SQLite 不支持的 TOP 語(yǔ)句引起了異常。在查閱相關(guān)資料后才發(fā)現(xiàn) SQLite 不支持 TOP 語(yǔ)句,因此使用語(yǔ)句 DESC LIMIT 來(lái)代替 TOP 達(dá)到了自己想要的只獲得表 positor_table 中的 score 字段值最大的前六個(gè)記錄信息。 SELECT * FROM [positor_table] ORDER BY [score] DESC LIMIT 6 游戲界面設(shè)計(jì) 開始界面 使用 SurfaceView將 圖 43中的未被按下的按鈕和圖 45游戲開始界面背景圖片 繪制成 游戲開始界面 圖 46。 圖 43 未被按下的按鈕圖標(biāo)集圖 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā) 13 44 被按下的按鈕圖標(biāo)集 圖 45 開始界面背景圖片 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 14 圖 46 開始界面 Android 應(yīng)用程序中 ,并沒(méi)有像 C++和 Java 這樣有 main 函數(shù)來(lái)作為應(yīng)用程序的入口 。Android 應(yīng)用程序提供的是入口 Activity,而非入口函數(shù) 。 文件中定義了整個(gè) Android 應(yīng)用所包含的 中將 SkyGameStartActivity 設(shè)置為當(dāng)前 SkyGame 啟動(dòng)時(shí),默認(rèn)加載的 Activity,代碼如下: activity android:name=.SkyGameStartActivity android:launchMode=singleTask intentfilter action android:name=/ category android:name=/ /intentfilter /activity Activity 中注冊(cè) layout 在 SkyGameStartActivity 的 onCreate 方法中設(shè)置要顯示的 layout,方法如下所示: protected void onCreate(Bundle savedInstanceState) { // TODO Autogenerated method stub (savedInstanceState)。 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開發(fā) 15 setContentView()。// 設(shè)置當(dāng)前 activity 調(diào)用的layout //其他操作 } BroadcastReceiver 由于本應(yīng) 用是有多個(gè) Activity 為了解決多個(gè) Activity 在其中任意一
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1