Android游戲開(kāi)發(fā)之旅(十二)Sensor重力感應(yīng)(1)
Posted on 2010-12-03 10:26 啥都寫(xiě)點(diǎn) 閱讀(285) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): Android從Android手機(jī) 開(kāi)始,主流的智能機(jī)紛紛加入了感應(yīng)器Sensor硬件,常見(jiàn)的有光線感應(yīng)器、重力感應(yīng)器、加速感應(yīng)器,而更高級(jí)的有磁極方向、陀螺儀、距離感應(yīng)器、溫度感應(yīng)器等等。對(duì)于Android游戲 開(kāi)發(fā) ,我們主要用到重力、加速、磁力和陀螺儀四種,當(dāng)然部分游戲可能需要GPS 或Cellid定位來(lái)修正一些位移信息。從系統(tǒng) 中提高的感應(yīng)器主要在android .hardware中,我們可以看到系統(tǒng)提供了 android.hardware.SensorEventListener、Sensor和SensorManager這三個(gè)類(lèi),我們會(huì)發(fā)現(xiàn)除了可以獲取 感應(yīng)器的信息,和感應(yīng)器的原始數(shù)據(jù) 外,并沒(méi)有提供相關(guān)的邏輯處理。Android123將會(huì)分3篇來(lái)詳細(xì)的介紹不同感應(yīng)器的作用和邏輯處理,比如自由落體,晃動(dòng),磁極,當(dāng)前的旋轉(zhuǎn)速度。
未來(lái)Android123將完成主要是一個(gè)基于OpenGL 3D的雷電游戲,最終加入聯(lián)網(wǎng)對(duì)戰(zhàn)效果 可以團(tuán)隊(duì)打怪實(shí)現(xiàn)手機(jī)3D網(wǎng)游充分發(fā)揮Android手機(jī)的娛樂(lè)能力。對(duì)于大多數(shù)新款A(yù)ndroid手機(jī)可能沒(méi)有配備軌跡球或?qū)Ш芥I的方向控制,所以重力感應(yīng)器是這類(lèi)實(shí)時(shí)性較強(qiáng)游戲的首選控制方式。主要有以下幾點(diǎn)問(wèn)題對(duì)于Sensor
1. 降噪處理,如果做過(guò)LBS軟件 的大家可能明白偏移修正,在GPS無(wú)法正常獲取數(shù)據(jù)較間斷時(shí)地圖不能亂飄,這里Sensor也不例外,除了使用采樣數(shù)據(jù)平均值獲取外,可以間隔采樣的方法來(lái)處理。細(xì)節(jié)的算法我們將在下節(jié)給出示例代碼 。
2. 感應(yīng)器的敏感度,在Android中提供了四種延遲級(jí)別分別為
SENSOR_DELAY_FASTEST 最低延遲,一般不是特別敏感的處理不推薦 使用,該種模式可能造成手機(jī)電力大量消耗,由于傳遞的為原始數(shù)據(jù),算法不處理好將會(huì)影響游戲邏輯和UI的性能,所以Android開(kāi)發(fā)網(wǎng)不推薦大家使用。
SENSOR_DELAY_GAME 游戲延遲,一般絕大多數(shù)的實(shí)時(shí)性較高的游戲都使用該級(jí)別。
int SENSOR_DELAY_NORMAL 標(biāo)準(zhǔn)延遲,對(duì)于一般的益智類(lèi)或EASY級(jí)別的游戲可以使用,但過(guò)低的采樣率可能對(duì)一些賽車(chē)類(lèi)游戲有跳幀現(xiàn)象。
int SENSOR_DELAY_UI 用戶(hù)界面 延遲,一般對(duì)于屏幕 方向自動(dòng) 旋轉(zhuǎn)使用,相對(duì)節(jié)省電能和邏輯處理,一般游戲開(kāi)發(fā)中我們不使用。
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/JavaTiger427/archive/2010/11/25/6034586.aspx
-- 學(xué)海無(wú)涯