加速感測器(CoreMotion)的用法,小球加速運動並反彈樣例
(3)使用NSOperationQueue.currentQueue()建立一個監聽佇列。
(4)使用startAccelerometerUpdatesToQueue方法更新監聽佇列,並設定回撥函式用於接受加速度通知。在回撥函式中使用accelerometerData.acceleration相關屬性可以獲取x、y、z各個方向的加速度。
2,通知頻率設定建議
accelerometerUpdateInterval表示通知頻率,表示間隔多少秒通知一次。iPhone開發文件中推薦使用的通知間隔如下:
(1)檢測裝置朝向:1/10 ~ 1/20
(2)在遊戲中需要實時使用加速感測器時:1/30 ~ 1/60
(3)檢測敲擊裝置或者劇烈搖動裝置的情況下:1/70 ~ 1/100
3,x,y,z軸
(1)對於iphone手機來說,畫面上下為y軸,左右為x軸,貫穿螢幕為z軸。
(2)向上,向右,手機的前面分別是各軸的正方向。
4,加速度(原始加速度)
加速度不僅受震動手機時施加的作用力的影響,還會持續受到重力的影響。因此iphone手機如果垂直拿在手上的話,Y軸負方向將受重力作用,加速度y屬性將一直為負值(最小值為-1.0)
6,測試樣例
該應用執行後,將在畫面正中央顯示一個球體。傾斜手機時,球體將向著傾斜的方向運動。碰撞到四壁後反彈回來。 (注意:由於需要用到裝置的重力感應器,所以要使用真機除錯,模擬器執行小球不會動。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import UIKit
import CoreMotion
class ViewController : UIViewController , UIAccelerometerDelegate {
var ball: UIImageView !
var speedX: UIAccelerationValue =0
var speedY: UIAccelerationValue =0
var motionManager
= CMMotionManager ()
override
|