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

正文內(nèi)容

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

2025-06-13 00:16 本頁(yè)面


【正文】 meDataBaseDao 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)。 } 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。 } 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)圖 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游戲開(kāi)始界面背景圖片繪制成游戲開(kāi)始界面圖46。圖43 未被按下的按鈕圖標(biāo)集圖44 被按下的按鈕圖標(biāo)集圖45 開(kāi)始界面背景圖片圖46 開(kāi)始界面 Android應(yīng)用程序中,并沒(méi)有像C++和Java這樣有main函數(shù)來(lái)作為應(yīng)用程序的入口。Android應(yīng)用程序提供的是入口Activity,而非入口函數(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)。 setContentView()。//設(shè)置當(dāng)前activity調(diào)用的layout //其他操作} BroadcastReceiver由于本應(yīng)用是有多個(gè)Activity為了解決多個(gè)Activity在其中任意一個(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目錄下,如果是存放在該目錄下的話,在install當(dāng)前Android工程時(shí),需要耗費(fèi)非常的時(shí)間將此類音頻文件上傳到Android虛擬機(jī)中。另一個(gè)存放位置是直接將音頻文件上傳到DDMS的/mnt/sdcard/Music文件夾下,這相當(dāng)于將該音頻文件放入到了Android手機(jī)的SD卡上了,相對(duì)于存放位置一來(lái)說(shuō),該方法在加載Android工程時(shí)消耗的時(shí)間比較少。具體向虛擬機(jī)中上傳文件如圖47所示:圖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銷毀(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類的方法:方法surfaceCreated(SurfaceHolder holder)的主要作用是:在surfaceview創(chuàng)建的繪制SurfaceView的內(nèi)容。方法surfaceDestroyed(SurfaceHolder holder)的主要作用是:在surfaceview銷毀時(shí)對(duì)于當(dāng)前SurfaceView中的一些對(duì)象做銷毀處理。SurfaceView的方法:onTouchEvent(MotionEvent event)可以捕獲鼠標(biāo)對(duì)于屏幕的觸碰事件,在該方法中對(duì)于鼠標(biāo)觸碰的區(qū)域做出判斷如果點(diǎn)擊的為按鈕圖片的位置則會(huì)調(diào)用圖44中對(duì)應(yīng)的被按下按鈕來(lái)顯示,如此顯示使用戶有一個(gè)可感受的按鈕被按下的動(dòng)態(tài)即視感,用戶體驗(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 == ){ 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()。 In
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1