Android游戲開發(fā)之十二:淺談Sensor重力感應(yīng)
Android系統(tǒng)提供的感應(yīng)器主要包含在android.hardware中,可以看到有 android.hardware.SensorEventListener、Sensor和SensorManager這三個類,而我們發(fā)現(xiàn)它們能做的 除了能夠獲取感應(yīng)器的信息和一些原始數(shù)據(jù)外,并沒有提供相關(guān)的邏輯處理。本教程后面將詳細介紹不同感應(yīng)器的作用和邏輯處理,例如晃動、磁極、旋轉(zhuǎn)速度或自 由落體。
很多Android手機可能沒有配備軌跡球或?qū)Ш芥I的方向控制,所以重力感應(yīng)器是這類實時性較強游戲的首選控制方式。對于Sensor感應(yīng)器主要有以下幾點問題:
1. 降噪處理。
如果做過LBS軟件的大家可能明白偏移修正,在GPS無法正常獲取數(shù)據(jù)較間斷時地圖不能亂飄,這里Sensor也不例外,除了使用采樣數(shù)據(jù)平均值獲取外,可以間隔采樣的方法來處理。細節(jié)的算法我們將在下節(jié)給出示例代碼。
2. Sensor感應(yīng)器的敏感度。
在Android中提供了四種延遲級別分別為:
SENSOR_DELAY_FASTEST:最低延遲,一般不是特別敏感的處理不推薦使用,該種模式可能造成手機電力大量消耗,由于傳遞的為原始數(shù)據(jù),算法不處理好將會影響游戲邏輯和UI的性能,所以Android開發(fā)網(wǎng)不推薦大家使用。
SENSOR_DELAY_GAME:游戲延遲,一般絕大多數(shù)的實時性較高的游戲都使用該級別
int SENSOR_DELAY_NORMAL:標準延遲,對于一般的益智類或EASY級別的游戲可以使用,但過低的采樣率可能對一些賽車類游戲有跳幀現(xiàn)象。
int SENSOR_DELAY_UI:用戶界面延遲,一般對于屏幕方向自動旋轉(zhuǎn)使用,相對節(jié)省電能和邏輯處理,一般游戲開發(fā)中我們不使用。















 
 
 
 
 
 
 