I love iPhone, Android, Cocos2d-x
[iPhone 開発メモ] iPhone を振ったのを検知する方法
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 : 本体を背面へ
関連する投稿
2 comments
コメントをどうぞ
Additional comments powered by BackType
[...] 加速度センサ サンプルCommentsAdd Star iPhone を振ったのを検知する方法 [...]
2ringtone…
…