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

Android游戲開發之十三:Sensor感應實例

移動開發 Android 游戲開發
本文將主要討論Android游戲開發中的Sensor感應實例。注意,Android 2.2平臺中曾沒有具體的感應判斷邏輯。

下面我們首先來定義下常用的感應動作事件。這里提醒大家由于是三軸的立體空間感應所以相對于軌跡球、導航鍵的上下左右外,還提供了前后的感應,所以我們定義最基本的六種空間方向。

  1. public static final int CWJ_UP = 0;    
  2. public static final int CWJ_DOWN = 1;    
  3. public static final int CWJ_LEFT = 2;    
  4. public static final int CWJ_RIGHT = 4;    
  5. public static final int CWJ_FORWARD = 8//向前    
  6. public static final int CWJ_BACKWARD = 16//向后  

下面我們做精確的角度旋轉修正值定義,我們用到yaw、pitch和roll,相信學過3D開發的網友不會對這些陌生的,我們就把他們對應為繞y、x、z軸的角度好了,如果你們沒有學過3D相關的知識這里推薦大家可以通過Cube例子自定義Render來觀察這三個值對應立方體的旋轉角度。

Yaw在(0,0,0)中, 以xOz的坐標平面中圍繞y軸旋轉,如果是負角則我們定義為CWJ_YAW_LEFT 即往左邊傾斜,同理我們定義如下:

  1. public static final int CWJ_YAW_LEFT = 0;    
  2. public static final int CWJ_YAW_RIGHT = 1;    
  3. public static final int CWJ_PITCH_UP = 2;    
  4. public static final int CWJ_PITCH_DOWN = 4;    
  5. public static final int CWJ_ROLL_LEFT = 8;    
  6. public static final int CWJ_ROLL_RIGHT = 16;   

我們通過加速感應器可以獲得SensorEvent的四個值,下面給大家一個簡單示例,不考慮其他因素,在public int accuracy 、public Sensor sensor 、public long timestamp  和public final float[] values 中,我們獲取values的浮點數組來判斷方向。

  1. int nAndroid123=CWJ_UP //向上    
  2. float ax = values[0];    
  3. float ay = values[1];    
  4. float az = values[2];    
  5. float absx = Math.abs(ax);    
  6. float absy = Math.abs(ay);    
  7. float absz = Math.abs(az);    
  8. if (absx > absy && absx > absz) {    
  9.    if (ax > 0) {    
  10.       nAndroid123 = CWJ_RIGHT;    
  11.    } else {    
  12.       nAndroid123 = CWJ_LEFT;    
  13.    }    
  14. else if (absy > absx && absy > absz) {    
  15.    if (ay > 0) {    
  16.       nAndroid123= CWJ_FORWARD;    
  17.    } else {    
  18.       nAndroid123= CWJ_BACKWARD;    
  19.    }    
  20. else if (absz > absx && absz > absy) {    
  21.    if (az > 0) {    
  22.       nAndroid123 = CWJ_UP;    
  23.    } else {    
  24.       nAndroid123 = CWJ_DOWN;    
  25.    }    
  26. else {    
  27.       nAndroid123 = CWJ_UNKNOWN;    
  28. }   

有關偏向角度問題,我們將在下一次詳細講述,對于一般的2D游戲,我們可以參考本文來實現重力控制,所以總體來說Android游戲開發比較簡單易懂,Android平臺使用的Java語言還是很適合做游戲的。在邏輯表達上更清晰。

責任編輯:閆佳明 來源: jizhuomi
相關推薦

2013-05-21 11:24:07

Android游戲開發Sensor重力感應

2013-05-21 09:56:15

2013-05-20 17:51:47

Android游戲開發SurfaceView

2013-05-20 15:42:22

2012-05-28 15:55:47

XNA 重力感應

2013-05-20 17:13:17

Android游戲開發CanvasPaint

2011-04-12 08:40:23

IMFAndroid

2013-08-01 14:03:49

JavaScript

2012-12-24 09:01:41

iOSUnity3D

2013-05-20 17:48:20

2013-05-21 10:42:48

Android游戲開發Bitmap位圖旋轉

2013-05-21 13:55:51

Android游戲開發圖像漸變特效

2013-05-21 14:10:11

Android游戲開發SoundPool類同時多音效

2013-05-21 13:33:02

Android游戲開發異步音樂播放

2013-05-21 14:15:23

Android游戲開發屏幕分辨率

2013-05-20 17:33:44

Android游戲開發自定義View

2013-05-21 14:22:29

Android游戲開發捕獲屏幕雙擊事件

2010-01-27 17:17:42

Android重力感應

2013-05-20 17:21:34

2013-05-21 11:33:11

Android游戲開發按鍵中斷事件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一区二区三区 | 久久久久久久夜 | 日韩国产中文字幕 | 91一区二区三区在线观看 | 福利精品 | 午夜视频免费在线观看 | 超碰成人av | 国产日韩一区二区三区 | 7777在线| 久久不卡区 | 亚洲精品1| 亚洲精品成人在线 | 国产一区二区视频免费在线观看 | 性网站免费| 久久99久久98精品免观看软件 | 五月天婷婷丁香 | 黄色一级毛片 | 亚洲在线免费观看 | 成人三级在线播放 | 青青草网站在线观看 | 午夜影院在线 | 久久av一区 | 在线一区 | 国产69久久精品成人看动漫 | 在线一区视频 | 亚洲视频在线看 | 日韩在线电影 | 久久伊人一区二区 | 午夜电影日韩 | 不卡在线视频 | 欧美日韩国产一区二区三区 | 婷婷开心激情综合五月天 | 久久久青草婷婷精品综合日韩 | 日韩一区二区免费视频 | www.国产日本 | 国产一区二区在线视频 | 色桃网 | 精品一区二区三区在线观看国产 | 日本精品网站 | 91成人在线 | 欧美日韩中文字幕在线 |