成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Android游戲開發(fā)基礎(chǔ)和經(jīng)驗

移動開發(fā) Android 游戲開發(fā)
Android游戲開發(fā)基礎(chǔ)和經(jīng)驗是本文要介紹的內(nèi)容,主要是來了解并學習Android游戲開發(fā)的內(nèi)容實例,具體關(guān)于Android游戲開發(fā)內(nèi)容的詳解來看本文。

Android游戲開發(fā)基礎(chǔ)和經(jīng)驗是本文要介紹的內(nèi)容,主要是來了解并學習Android游戲開發(fā)的內(nèi)容實例,具體關(guān)于Android游戲開發(fā)內(nèi)容的詳解來看本文。

做一個類似俄羅斯方塊的android游戲開發(fā),游戲完全又觸屏來實現(xiàn)還有音樂播放等等一些基本的功能,游戲是基于 android sdk1.6完成。由于初識android,這個游戲也是本人第一個android游戲開發(fā),所以還有很多不足,這里只是想分享一下在開發(fā)過程中一些自己總結(jié)的經(jīng)驗和小技巧,希望對新手有所幫助,高手也請不吝賜教。

一、首先我們應(yīng)該知道android游戲開發(fā)的一些基本框架。

Android游戲開發(fā)中首先是View類開發(fā)框架。在Android游戲開發(fā)中,任何一個View類都只需要重寫onDraw方法來實現(xiàn)界面顯示。游戲的核心是不斷的繪圖和刷新界面,在 Android中最常用的方法是利用Handler來實現(xiàn)UI線程的更新,也可以直接在run方法中使用postInvalidate()方法在線程中更新界面。其次,是SurfaceView類開發(fā)框架。

當需要開發(fā)復雜的游戲,而且對程序的執(zhí)行效率很高時,View類就不能滿足需求了,這是必須用 SurfaceView類進行開發(fā),這也是主流開發(fā)框架。在使用時需要對其進行創(chuàng)建、銷毀,情況改變時進行監(jiān)視,這就要實現(xiàn) SurfaceHOlder.Callback接口,如果要對被繪制的花布進行裁減,控制其大小時都需要使用SurfaceHOlder來完成處理。在程序中,SurfaceHOlder對象需要通過getHolder方法來獲得,同時還需要addCallback方法來添加“回調(diào)函數(shù)”。

例如下面一個簡單的SurfaceView類框架:

  1. public class GameSurfaceView extends SurfaceView implements SurfaceHolder.Callback,Runnable {  
  2. SurfaceHolder mSurfaceHolder = null;  
  3. public GameSurfaceView(Context context) {  
  4. super(context);  
  5. mSurfaceHolder = this.getHolder();  
  6. mSurfaceHolder.addCallback(this);  
  7. this.setFocusable(true);  
  8. }  
  9. public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){  
  10. }  
  11. public void surfaceCreated(SurfaceHolder holder ){  
  12. new Thread(this).start();  
  13. }  
  14. public void surfaceDestroyed(SurfaceHolder holder){  
  15. }  
  16. public void run(){  
  17. while (true){  
  18. try{  
  19. Thread.sleep(1000);  
  20. }  
  21. catch(Exception e){  
  22. }  
  23. synchronized(mSurfaceHolder){  
  24. Draw();  
  25. }  
  26. }  
  27. }  
  28. private void Draw() {  
  29. Canvas canvasmSurfaceHolder.lockCanvas();  
  30. ......  
  31. mSurfaceHolder.unlockCanvasAndPost(canvas);  
  32. }  

然后在activity類中 :setContentView(GameSurfaceView的對象)。

二、游戲開發(fā)中常用到的基本類

Android游戲開發(fā)中通過graphics類來顯示2D圖形,graphics中包括了Canvas(畫布)、Paint(畫筆)、Color(顏色)、Bitmap(圖片)等常用類。

例如繪制字符串用canvas類的drawText方法來實現(xiàn),drawRect用來繪制矩形,設(shè)置透明度可以用paint類的setAlpha,同時 Color.rgb方法可以直接獲得整形數(shù)值代表的顏色。此外在繪制圖片時應(yīng)該首先從資源文件中裝載圖片,然后才能繪制到屏幕上去。具體代碼如下:Bitmap mypic = null; mypic=((BitmapDrawable)getResources().getDrawable(R.drawable.pic)).getBitmap(); Canvas canvas = new Canvas(); canvas.drawBitmap(mypic,x,y,null);

三、關(guān)于自適應(yīng)屏幕分辨率的問題

Android游戲開發(fā)中每款手機分辨率的不同注定是程序員開發(fā)游戲必須考慮的問題,怎樣才能寫一個程序而達到可以在不同分辨率的機子上運行良好,這將是決定一個游戲好壞的重要因素之一。在游戲資源res下有三個和圖片存儲有關(guān)的文件夾:drawable-hdpi、drawable-mdpi、drawable-ldpi。

drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854),drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480),drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320),系統(tǒng)會自動根據(jù)機器的分辨率來分別到這幾個文件夾里面去找對應(yīng)的圖片。當然,除了準備好幾組不同分辨率的圖片以外,在代碼中圖片坐標和觸屏事件的坐標都要靈活的處理,這樣才能實現(xiàn)一個程序多機型運行的目標。

  1. DisplayMetrics dm = new DisplayMetrics();  
  2. getWindowManager().getDefaultDisplay().getMetrics(dm);  
  3. int screenWidth = dm.widthPixels;  
  4. int screenHeight = dm.heightPixels; 

通過以上代碼可以獲得當前機型的屏幕像素,然過比列換算可以實現(xiàn)代碼中坐標的靈活應(yīng)用。

四、如何鎖定屏幕是橫屏還是豎屏

一款游戲通常不會設(shè)計成橫屏豎屏都可玩,會固定成橫屏或豎屏。Android游戲開發(fā)中只需在AndroidManifest.xml里面配置一下就可以了,加入這一行

  1. android:screenOrientation="landscape" 

例如(landscape是橫向,portrait是縱向)。

五、view與view之間的跳轉(zhuǎn)

Android游戲開發(fā)中一個游戲不會只有一個view,比如歡迎動畫,游戲畫面,菜單頁面等等,如何實現(xiàn)它們之間的跳轉(zhuǎn),這里有一個方法,就是用Handler類實現(xiàn)。直接看代碼:

  1. Handler myHandler = new Handler(){  
  2. public void handleMessage(Message msg){  
  3. if(msg.what == 1){  
  4. //控制頁面的顯示...  
  5. }  
  6. if(msg.what == 2){  
  7. //控制頁面的顯示...  
  8. }  
  9. }  
  10. }; 

然后用:myHandler.sendEmptyMessage(1)來實現(xiàn)切換。

小結(jié):淺談Android游戲開發(fā)基礎(chǔ)和經(jīng)驗的內(nèi)容介紹完了,希望通過Android游戲開發(fā)內(nèi)容的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2013-05-21 11:24:07

Android游戲開發(fā)Sensor重力感應(yīng)

2009-03-11 09:33:11

Lotus開發(fā)Workflow

2009-04-16 09:08:21

Oracle開發(fā)經(jīng)驗

2011-03-31 09:55:59

Oracle數(shù)據(jù)庫開發(fā)技術(shù)

2010-01-26 17:42:14

Android浮點

2011-04-25 16:56:34

Greedy Bank游戲開發(fā)獨立開發(fā)者

2013-09-03 11:18:00

Android開發(fā)項目

2011-05-31 14:03:13

2011-08-10 09:42:08

2011-07-22 13:37:32

2009-07-15 09:42:56

MyEclipse使用

2011-12-12 13:58:11

TinyCoiOSAndroid

2011-07-28 10:01:19

IOS 內(nèi)存優(yōu)化

2011-07-12 17:26:02

PHPPython

2014-03-14 13:36:19

獨立游戲經(jīng)驗

2015-09-06 09:51:02

html5開發(fā)經(jīng)驗開發(fā)工具

2015-09-06 13:26:41

HTML5游戲開發(fā)工具手游開發(fā)

2015-09-07 14:17:44

HTML5游戲開發(fā)工具

2012-05-03 14:29:53

HTML5

2012-04-08 20:52:47

游戲開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 美女视频一区二区三区 | 欧美一级免费 | av网站免费看| 99久9| 国产精品av久久久久久久久久 | 国内精品视频一区二区三区 | 免费国产一区二区视频 | 天天操天天干天天透 | 在线观看视频福利 | av在线一区二区三区 | 91国产视频在线观看 | 看亚洲a级一级毛片 | 秋霞a级毛片在线看 | 国产精品成人一区二区三区 | 日韩精品网站 | 精品少妇一区二区三区日产乱码 | 欧美日韩不卡合集视频 | 在线观看的av | 精品免费国产视频 | 国产精品美女久久久久aⅴ国产馆 | 成人国产精品 | 91精品国产一区二区三区 | 91综合在线视频 | 精品国产乱码久久久久久闺蜜 | 91精品国产91久久久久久吃药 | 91精品免费视频 | 久久综合一区二区 | 天天看天天干 | 午夜视频在线观看视频 | 久久国产精品99久久久大便 | 久久亚洲精品久久国产一区二区 | 天天爱av | 玖玖综合网 | 在线观看中文字幕视频 | 精品网站999www| www.久久久 | 亚卅毛片 | 91国内在线观看 | 岛国在线免费观看 | 高清国产午夜精品久久久久久 | 1204国产成人精品视频 |