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

正文內(nèi)容

畢業(yè)論文-基于android的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-01-06 23:01 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 一個(gè) Activity 結(jié)束時(shí)都會(huì)相應(yīng)一起退出系統(tǒng),因此針對(duì)每一個(gè) Activity 設(shè)置一個(gè) BroadcastReceiver 來(lái)接收廣播,一旦接收到廣播當(dāng)前 Activity 自動(dòng)退出 。 Activity 接收到廣播后退出的代碼如下所示 : private BroadcastReceiver exitReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { // TODO Autogenerated method stub ()。 } }。 發(fā)送廣播 而當(dāng)前 Activity 在被按下 “EXIT” 或者 “ 退出 ” 按鈕時(shí),會(huì)向外界發(fā)送一個(gè)廣播, 之后結(jié)束自己: Activity activity = (Activity)context。 Intent intent = new Intent(EXIT)。 (EXIT)。 (intent)。 ()。 MediaPlayer( 媒體播放器 ) 本應(yīng)用使用 Android 的 MediaPlayer 來(lái)演奏每一個(gè)頁(yè)面的背景音樂(lè)。 背景音樂(lè)可以存放在兩個(gè)位置,一個(gè)是當(dāng)前工程的 /res/raw 目錄下,如果是存放在該目錄下的話(huà),在 install 當(dāng)前 Android 工程時(shí),需要耗費(fèi)非常的時(shí)間將此類(lèi)音頻文件上傳到Android 虛擬機(jī)中。另一 個(gè)存放位置是直接將音頻文件上傳到 DDMS 的 /mnt/sdcard/Music文件夾下,這相當(dāng)于將該音頻文件放入到了 Android 手機(jī)的 SD 卡上了,相對(duì)于存放位置一來(lái)說(shuō),該方法在加載 Android 工程時(shí)消耗的時(shí)間比較少。具體向虛擬機(jī)中上傳文件如圖47 所示: 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 16 圖 47 DDMS 向 Android 虛擬機(jī)中上傳文件 MediaPlayer 使用方法: private MediaPlayer startSound = null。 startSound = new MediaPlayer()。 try { /* * 從 sdcard中獲得音頻文件的路徑 */ (/mnt/sdcard/Music/)。 ()。 } catch (IllegalArgumentException e) { // TODO Autogenerated catch block ()。 } catch (SecurityException e) { // TODO Autogenerated catch block ()。 } catch (IllegalStateException e) { // TODO Autogenerated catch block ()。 } catch (IOException e) { // TODO Autogenerated catch block ()。 } (true) 。//設(shè)置循環(huán) 由于當(dāng)前應(yīng)用針對(duì)不同的顯示界面( Activity)有不同的背景音樂(lè),因此當(dāng)前 Activity掛起時(shí),對(duì)應(yīng)的背景音樂(lè)也要掛起( ())。而在當(dāng)前 Activity 銷(xiāo)毀基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開(kāi)發(fā) 17 ( destory ) 時(shí) , 需 要 對(duì) 背 景 音 樂(lè) 進(jìn) 行 停 止 ( () ) 和 回 收( ())操作。 layout 中調(diào)用 SurfaceView 普通的 layout 設(shè)置與直接調(diào)用 SurfaceView 的 layout 有所不同,一下列出調(diào)用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 的絕對(duì)路徑來(lái)編寫(xiě)開(kāi)始頁(yè)面的 layout 文件,使得開(kāi)始頁(yè)面直接使用該 SurfaceView 繪制的 Bitmap 作為背景圖片來(lái)顯示。 SurfaceView所需要設(shè)置下它的 SurfaceHolder 和 Monitor(實(shí)現(xiàn) CallBack接口 )屬性 holder = getHolder()。 monitor = new Monitor()。 (monitor)。 Monitor 類(lèi)的方法: 方法 surfaceCreated(SurfaceHolder holder)的主要作用是: 在 surfaceview 創(chuàng)建的繪制 SurfaceView 的內(nèi)容。 方法 surfaceDestroyed(SurfaceHolder holder)的主要作用是: 在 surfaceview 銷(xiāo)毀時(shí)對(duì)于當(dāng)前 SurfaceView 中的一些對(duì)象做銷(xiāo)毀處理。 SurfaceView 的方法: onTouchEvent(MotionEvent event)可以捕獲鼠標(biāo)對(duì)于屏幕的觸碰事件,在該方法中對(duì)于鼠標(biāo)觸碰的區(qū)域做出判斷如果點(diǎn)擊的為按鈕圖片的位置則會(huì)調(diào)用 圖 44 中對(duì)應(yīng)的被按下按鈕 來(lái)顯示,如此顯示使用戶(hù)有一個(gè)可感受的按鈕被按下的動(dòng)態(tài)即視感,用戶(hù)體驗(yàn)更好 。 public boolean onTouchEvent(MotionEvent event) { // TODO Autogenerated method stub int action = ()。 float eventX = ()。 float eventY = ()。 if((eventX = START_X)amp。amp。 (eventX = START_X+())amp。amp。 (eventY = START_Y)amp。amp。 (eventY = START_Y+())){ if(action == ){ 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 18 startButton = (getResources(), )。 drawStartButton()。 } if(action == ){ startButton = (getResources(), )。 drawStartButton()。 Intent intent = new Intent(,)。 (intent)。 } } else if((eventX = OPTION_X)amp。amp。 (eventX = OPTION_X+())amp。amp。 (eventY = OPTION_Y)amp。amp。 (eventY = OPTION_Y+())){ if(action == ){ optionButton = (getResources(), )。 drawOptionButton()。 } if(action == ){ optionButton = (getResources(), )。 drawOptionButton()。 Intent intent = new Intent(,)。 (intent)。 } } else if((eventX = SCORE_X)amp。amp。 (eventX = SCORE_X+())amp。amp。 (eventY = SCORE_Y)amp。amp。 (eventY = SCORE_Y+())){ if(action == ){ scoreButton = (getResources(), )。 drawScoreButton()。 } if(action == ){ scoreButton = (getResources(), )。 drawScoreButton()。 Intent intent = new 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開(kāi)發(fā) 19 Intent(,)。 (intent)。 } } else if((eventX = EXIT_X)amp。amp。 (eventX = EXIT_X +())amp。amp。 (eventY = EXIT_Y)amp。amp。 (eventY = EXIT_Y + ())){ if(action == ){ scoreButton = (getResources(), )。 drawExitButton()。 } if(action == ){ scoreButton = (getResources(), )。 drawExitButton()。 Activity activity = (Activity)context。 Intent intent = new Intent(EXIT)。 (EXIT)。 (intent)。 ()。 } } return true。 } 游戲界面 本界面與開(kāi)始界面都是使用 SurfaceView 繪制的界面 , 由于本界面相對(duì)于開(kāi)始界面更加復(fù)雜在主線程外創(chuàng)建了子線程來(lái)負(fù)責(zé)對(duì)于 SurfaceView 的繪制工作 , 主線程負(fù)責(zé)對(duì)于各類(lèi)對(duì)象的控制計(jì)算等計(jì)算工作。 由于游戲界面涉及到的類(lèi)比較多,且邏輯復(fù)雜,所以在這里只介紹下使用的空間、技術(shù)以及業(yè)務(wù)邏輯,粘貼部分技術(shù)代碼。 繪制的游戲界面如圖 48 所示: 洛陽(yáng)師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計(jì) 20 圖 48 游戲界面 Activity 中注冊(cè) SurfaceView 游戲界面并沒(méi)有像開(kāi)始界面那樣注冊(cè) SurfaceView, 而 是直接在 onCreate 方法中使用代碼注冊(cè)的自定義 SurfaceView, 如下 : private SkyGameScreenRollView sr = null。//自定義 surfaceview protected void onCreate(Bundle savedInstanceState) { // TODO Autogenerated method stub (savedInstanceState)。 sr = new SkyGameScreenRollView(this)。 (new LayoutParams(, ))。 (0x000101)。 setContentView(sr)。 } ContextMenu 控件 游戲界面使用了 Android 的 ContextMenu, ContextMenu 顯示的具體效果見(jiàn)圖 49。 基于 Android 的飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與開(kāi)發(fā) 21 圖 49 ContextMenu 效果 ContextMenu 針對(duì)某個(gè)控件,一旦為某個(gè)控件設(shè)置了 ContextMenu,那么程序員將不能再實(shí)現(xiàn)該控件的長(zhǎng)按事件處理了。 ContextMenu 的使用步驟: 1. ContextMenu 針對(duì)的是控件而不是窗體,構(gòu)建完 ContextMenu 后需要與一個(gè)控件實(shí)施綁定 。 綁定的代碼為: (控件對(duì)象 )。 ContextMenu 的方法如下: res/menu/** 的菜單 ( 當(dāng)前應(yīng)用使用的該方法 )。 onCreateContextMenu()回調(diào)函數(shù) 。 (控件對(duì)象 )。 。 具體操作方法 重寫(xiě) onCreateMenuItemSelected 回調(diào)函數(shù) 。 游戲界面的 ContextMenu 的 內(nèi)容如下: ?xml version= encoding=utf8? menu xmlns:android= item android:id=@+id/pg_option_exit android:title=@string/option_menu_exit android:showAsAction=never/
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1