Himi 原創, 歡迎轉載,轉載請在明顯處注明! 謝謝。
原文地址: http://blog.csdn.net/xiaominghimi/archive/2011/01/16/6143520.aspx
前兩篇都是向大家介紹了很有意思的兩種手勢操作,嵌入我們游戲中,不得不說讓游戲的自由度、可玩性和趣味性都增色不少!那么今天繼續給大家介紹一亮點! 傳感器 !
一:什么是傳感器:
所謂傳感器能夠探測如光、熱、溫度、重力、方向 等等的功能!
二:Android中提供傳感器有哪些:
1. 加速度傳感器(重力傳感器)
2.陀螺儀傳感器
3.光傳感器
5. 恒定磁場傳感器
6. 方向傳感器
7. 恒定的壓力傳感器
8. 接近傳感器
9. 溫度傳感器
今天我們給大家介紹的是游戲開發中最最常見的,用到的頻率最高的一種傳感器, 加速度傳感器(重力傳感器)!
因為模擬器無法測試,所以我用手機調試的~,先上兩張截圖;
備注1:
SensorEventListener的onSensorChanged事件將返回SensorEvent對象,包含Sensor的最新數據,通過event.values獲得一個float[]數組!對于不同的傳感器類型,其數組包含的元素個數是不同的,重力傳感器總是返回一個長度為3的數組,分別代表X、Y和Z方向的數值。Z軸表示了手機是屏幕朝上還是屏幕朝下;
這里還要注意你當前手機處于 縱向, 還是橫向,因為這個會影響我們的X,Y表示的意思!
如果當前手機是縱向屏幕:
x>0 說明當前手機左翻 x<0右翻
y>0 說明當前手機下翻 y<0上翻
如果當前手機是橫向屏幕:
x>0 說明當前手機下翻 x<0上翻
y>0 說明當前手機右翻 y<0左翻
我要提醒各位童鞋:
1.要考慮玩家當前拿手機的姿勢,例如豎屏,橫屏
2.根據橫豎屏幕的不同,雖然屏幕坐標系會自動改變,但是傳感器的值不會自動改變坐標系!所以為什么會橫屏豎屏改變的時候我們從傳感器中取出的值表示的動作不一樣的原因!!!因此大家游戲開發的時候對于人物移動、圖片移動等等操作的時候,手勢X,Y的正負值代表什么一定要想清楚!否則玩家會玩著玩著吐的 (太暈了!)- -、
備注2 :
這里本應該arc_x+=x;但是因為當前我屏幕是縱向!造成x>0的手勢表示玩家將手機左翻了,但是我們屏幕的圓形應該根據人的反轉相對應的移動,那么這里玩家將手機左翻,我們就應該讓原型的X坐標減少!所以這里寫成了arc_x-=x;!
總結一下: 對于傳感器的雖然本章只是講了一個重力傳感器,但是一個足夠了,因為如果你想使用其他的傳感器,那么你只要以下步驟就OK:
1. 利用SensorManager.getDefaultSensor();傳入一個你想要的傳感器的參數得到其實例!
2.注冊!
3.在監聽器里處理事件!
OK!就是這么簡單、
源碼下載地址: http://download.csdn.net/source/2985714
【Android游戲開發十八】解放手指,利用傳感器開發游戲!(本文講解在SurfaceView中用重力傳感器控制圓球的各方向移動)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
