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

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