(圖片來源:UIAcceleration Class Reference)
上圖是iPhone所俱備三維空間的加速度感應器,在App Store有許多的小遊戲都是用它來控制的,使用的方法很簡單,不過筆者不太喜歡用Interface Builder來學習iPhone上的開發技巧,所以此範例都是純手工。
主要程式
UIAccelerometer *acc = [UIAccelerometer sharedAccelerometer]; acc.updateInterval = 1.0f/20.0f; acc.delegate = self;
由於UIAccelerometer class是一個Singleton pattern,所以需要透過「[UIAccelerometer sharedAccelerometer]」的方式來取得,在Java上就是一些「getInstance()」的方法。
這裡需要設置兩個property,它們分別為:updateInterval、delegate
updateInterval:代表加速度感應器更新的頻率。
delegate:用來註冊哪一個class有實作「UIAccelerometerDelegate」Protocol
UIAccelerometerDelegate
- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration { xx.text = [NSString stringWithFormat:@"%f",acceleration.x]; yy.text = [NSString stringWithFormat:@"%f",acceleration.y]; zz.text = [NSString stringWithFormat:@"%f",acceleration.z]; }
此範例純粹將X, Y, Z三個軸的值顯示出來。
.範例下載