電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

iPhoneの加速度センサの使い方

今回はViewクラスに実装しますが、もちろん実装方法はこの限りではありません。

メモで使うサンプルプロジェクト

  • プロジェクト名:TestApp
  • アプリケーションクラス:TestAppAppDelegate
  • ビューコントローラクラス:TestAppViewController
  • ビュークラス:TestAppView

ビュークラスヘッダファイル"TestAppView.h"

ビュークラスのinterfaceの定義にプロトコル"UIAccelerometerDelegate"を追加
UIAccelerometerのインスタンスを追加


@interface TestAppView : UIView {
UIAccelerometer *accelerometer;
}

ビュークラスファイル"TestAppView.m"

ビュークラスへ加速度センサを初期化するメソッドを定義する。
accelerometer.updateIntervalに読み取り間隔(時間)の値を設定します。
ここで定義したメソッドを読み取りを開始したいタイミング(ビューコントローラクラスviewDidLoadメソッドの中など)で実行します。


メソッド名は何でも可
-(void) InitializeAccelerometer {
accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.updateInterval = 1.0f / 30.0f; // 読み取り間隔の設定
accelerometer.delegate = self;
}
設定した読み取り間隔の時間が来る度に実行するメソッドを定義する。
accelerationにそれぞれの座標軸の加速度が-1.0〜+1.0のfloat型で取得できます。
acceleration.x, acceleration.y, acceleration.zでそれぞれの座標軸の値が取得できます。

- (void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration {
// 例としてコンソールに表示
NSLog(@"x=%f : y=%f : z=%f", acceleration.x, acceleration.y, acceleration.z);
}

基礎からのiPhone SDK

基礎からのiPhone SDK