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

正文內(nèi)容

畢業(yè)論文-基于android的飛機大戰(zhàn)游戲設(shè)計與實現(xiàn)-閱讀頁

2024-12-21 23:01本頁面
  

【正文】 troyed(SurfaceHolder holder)的主要作用是: 在 surfaceview 銷毀時對于當(dāng)前 SurfaceView 中的一些對象做銷毀處理。 public boolean onTouchEvent(MotionEvent event) { // TODO Autogenerated method stub int action = ()。 float eventY = ()。amp。amp。amp。 drawStartButton()。 drawStartButton()。 (intent)。amp。amp。amp。 drawOptionButton()。 drawOptionButton()。 (intent)。amp。amp。amp。 drawScoreButton()。 drawScoreButton()。 (intent)。amp。amp。amp。 drawExitButton()。 drawExitButton()。 Intent intent = new Intent(EXIT)。 (intent)。 } } return true。 由于游戲界面涉及到的類比較多,且邏輯復(fù)雜,所以在這里只介紹下使用的空間、技術(shù)以及業(yè)務(wù)邏輯,粘貼部分技術(shù)代碼。//自定義 surfaceview protected void onCreate(Bundle savedInstanceState) { // TODO Autogenerated method stub (savedInstanceState)。 (new LayoutParams(, ))。 setContentView(sr)。 基于 Android 的飛機大戰(zhàn)游戲設(shè)計與開發(fā) 21 圖 49 ContextMenu 效果 ContextMenu 針對某個控件,一旦為某個控件設(shè)置了 ContextMenu,那么程序員將不能再實現(xiàn)該控件的長按事件處理了。 綁定的代碼為: (控件對象 )。 onCreateContextMenu()回調(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/ item android:id=+id/pg_option_score android:title=string/option_menu_score android:showAsAction=never/ item android:id=+id/pg_option_start android:title=string/option_menu_start android:showAsAction=never/ item android:id=+id/pg_option_option android:title=string/option_menu_option android:showAsAction=never/ /menu 洛陽師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計 22 在游戲界面的 SkyGameScreenRollActivity 的方法 onCreateOptionsMenu(Menu menu)中注冊 文件,具體方法如下所示: public boolean onCreateOptionsMenu(Menu menu) { // TODO Autogenerated method stub MenuInflater inflater = new MenuInflater(this)。 return true。 switch(()){ case : intent = new Intent()。 (intent)。 break。 (intent)。 case : intent = new Intent(,)。 break。 (intent)。 } return true。 = ()。 telNum = 5554。 } (PS:Android 的發(fā)送短信存在 一個 Bug就是當(dāng)前 DalvikVM發(fā)送的短信它自己無法收到,如果同時開兩個 DalvikVM 其中一個發(fā)送短信的話,另一個會收到短信。具體根據(jù)鼠標(biāo)移動控制玩家飛機移動的邏輯如下所示: public boolean onTouchEvent(MotionEvent event) { // TODO Autogenerated method stub int action = ()。 float y = ()。amp。amp。amp。 } if(action == ){ playerIsTouch = false。 } } if(action == ){ if(playerIsTouch){ ((),())。 } 洛陽師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計 24 圖 410 鼠標(biāo)控制玩家飛機序列圖 Activity 之間傳遞數(shù)據(jù) 使用到了 Activity 之間傳遞數(shù)據(jù)的技術(shù),將玩家當(dāng)前獲得的分?jǐn)?shù)傳遞給下一個 Activity以供使用。 (score, ())。 : Intent intent = getIntent()。 SurfaceView 中繪制文字 Android 的 Paint 對象在畫布上實時繪制玩家的分?jǐn)?shù),代碼如下: public void drawScore(Canvas canvas){ Paint paint = new Paint()。 (20)。 基于 Android 的飛機大戰(zhàn)游戲設(shè)計與開發(fā) 25 } 繪制文字的效果如圖 411 所示: 圖 411 繪制文字 碰撞邏輯 判斷飛機是否中彈的邏輯非常簡單就是在繪制飛機與子彈的時候判斷兩個圖片是否存在重合的部分,如果存在則在該重合位置繪制一個爆炸圖片,之后將中彈飛機從飛機隊列中刪除,子彈同樣的處理。 圖 413 血線圖片集合 繪制血線的邏輯如圖 414 所示: 圖 414 繪制血線邏輯 具體負(fù)責(zé)繪制血線的函數(shù)( PS:該函數(shù)僅負(fù)責(zé)繪制,各種邏輯判斷的事情它不做)如下: public void drawPlayerBloodLine(Canvas canvas){ int num = playerIsShortedCount/5。 Bitmap blood = null。 if(num == 0){ ( fullBlood, 0, viewHeight (), null)。 empty = ( emptyBlood, leng, 0, ()leng, ())。 ( empty, 基于 Android 的飛機大戰(zhàn)游戲設(shè)計與開發(fā) 27 (), viewHeight (), null)。 empty = ( emptyBlood, (), 0, ()(), ())。 ( empty, (), viewHeight (), null)。 isPlayerDead = true。AudioManager 本界面使用了 SeekBar為了能夠通過拖動 SeekBar上的按鈕來調(diào)整聲音的大小需要結(jié)合 AudioManager 來設(shè)置當(dāng)前 Activity 的背景音樂。 (, seekBarProgress, 0)。 int maxProgress = ()。 (this)。 (currentProgress)。 (, seekBarProgress, 0)。 rdId = ()。 洛陽師范學(xué)院 2020 屆本科生畢業(yè)設(shè)計 30 (seekBarProgress, seekBarProgress)。 ()。 SkyGameOptionButtonOnClickActivity 具體內(nèi)容如下: public class SkyGameOptionButtonOnClickActivity extends Activity implements { private final String EXIT = EXIT。 private SeekBar soundSeekBar = null。 private Button btnMakeSure = null。 private int seekBarProgress = 0。 private int rdId = 0。 rdId = ()。 (seekBarProgress, seekBarProgress)。 ()。 ()。 private OnClickListener btnCancleHandler = new OnClickListener(){ public void onClick(View v) { // TODO Autogenerated method stub initSeekBarProgress()。 (seekBarProgress)。 } }。 } }。 } }。 setContentView()。 initCompent()。 } protected void onStart() { // TODO Autogenerated method stub ()。 } protected void onRestart() { // TODO Autogenerated method stub ()。 } protected void onPause() { // TODO Autogenerated method stub ()。 } protected void onDestroy() { // TODO Autogenerated method stub ()。 ()。 } public boolean onCreateOptionsMenu(Menu menu) { // TODO Autogenerated method stub MenuInflater inflater = new MenuInflater(this)。 return true。 switch(()){ case : intent = new Intent()。 (intent)。 break。 (intent)。 case : intent = new Intent(,)。 break。 } public void initCompent(){ rdGroup = (RadioGroup)findViewById()。 btnMakeSure = (Button) findViewById()。 btnCancle = (Button) findViewById()。 audioManager = (AudioManager) (AUDIO_SERVICE)。 (, seekBarProgress, 0)。 int maxProgress = ()。 (this)。 (currentProgress)。 try { (/mnt/sdcard/Music/)。 } catch (SecurityException e) { // TODO Autogenerated catch block ()。 } catch (IOException e) { // TODO Autogenerated catch block ()。 } catch (IllegalArgumentException e) { // TODO Autogenerated catch block ()。 } catch (IllegalStateException e) { // TODO Autogenerated catch block ()。 } (t
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1