2008年

[iPhone 開発メモ] iPhone を振ったのを検知する方法 このエントリーを含むはてなブックマーク

iPhone/iPod touch Add comments

Apple – Support – Discussions – Determining a Shake with the …

iPhone/iPod touch を振ったときの動作を検知する方法です。
setUpdateInterval でチェック間隔を指定して、accelerometer メソッドの violence で感度を指定します。設定を色々変えて実際に iPhone/iPod touch を振ってみてアプリに合った設定を探す感じですね。

- (void)viewDidLoad {
    [super viewDidLoad];
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0/15)];
    [[UIAccelerometer sharedAccelerometer] setDelegate:self];
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
	const float violence = 1.5;
	static BOOL beenhere;
	BOOL shake = FALSE;

	if (beenhere) return;
	beenhere = TRUE;
	if (acceleration.x > violence || acceleration.x < -1*violence)
		shake = TRUE;
	if (acceleration.y > violence || acceleration.y < -1*violence)
		shake = TRUE;
	if (acceleration.z > violence || acceleration.z < -1*violence)
		shake = TRUE;
	if (shake) {
		// 振ったときの処理
	}
	beenhere = FALSE;
}

追記:2008.12.24
(UIAcceleration *) acceleration のプロパティの x, y ,z はそれぞれ下記方向を指します。
x>0 : 本体を右へ
x<0 : 本体を左へ
y>0 : 本体を上へ
y<0 : 本体を下へ
z>0 : 本体を全面へ
z<0 : 本体を背面へ

関連する投稿

One Response to “[iPhone 開発メモ] iPhone を振ったのを検知する方法”

  1. iPhone 端末を振る動作(シェイクジェスチャー)検知方法 | tonbyブログ Says:

    [...] 加速度センサ サンプルCommentsAdd Star iPhone を振ったのを検知する方法 [...]

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン