我們為什麼要實現動作的感應效果那,這個主要是用再了android的遊戲裡,有了這個效果,就會讓我們的玩家的視覺感非常的好。那我們就快來看看是怎麼實現android動作感應的吧。
1.發現Android提供了SensorListener介面
2.要使用還得有個動作感應管理器SensorManager
Java代碼:
- //取得SensorManager
- SensorManager sensorMgr = (SensorManager)getSystemService(SENSOR_SERVICE);
3.註冊我們獲得的SensorManager
Java代碼:
- //返回true表示註冊成功,flase則反之
- sensorMgr.registerListene(this,SensorManager.SENSOR_ACCELEROMETER,SensorManager.SENSOR_DELAY_GAME);
如果註冊SensorManager不成功就調用
Java代碼:
- sensorMgr.unregisterListener(this,SensorManager.SENSOR_ACCELEROMETER);
4.SensorListener必須實現兩個方法
Java代碼:
- public void onAccuracyChanged(int arg0, int arg1) {}
- public void onSensorChanged(int sensor, float[] values) {}
5.自己定義一個3D的座標
Java代碼:
- class Pos3D
- {
- float x;
- float y;
- float z;
- }
- Pos3D cur,last;
在方法onSensorChanged中這樣課可以獲得資料
Java代碼:
- cur.x = values[SensorManager.DATA_X];
- cur.y = values[SensorManager.DATA_Y];
- cur.z = values[SensorManager.DATA_Z];
- float speed = Math.abs((cur.x+cur.y+cur.z)-(last.x+last.y+last.z))/ 間隔的時間
下面就是判斷這個speed大於自己定義的一個數值時,進行處理
Java代碼:
- if(speed > 1000)
- {
- //這裡來進行處理
- }
就這樣最基本的實現了動作感應,但是大家肯定能感覺得到這個方法的不足之處