accelerometerEnabled設定
[self setAccelerometerEnabled:YES];
accelerometerメソッド追加
- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { if (abs(acceleration.x-oldX) > 0.7 || abs(acceleration.y - oldY) > 0.7) { NSLog(@"shake!!!"); } oldX = acceleration.x; oldY = acceleration.y; }
※oldX,oldYはインスタンス変数
だが、このやり方では一回のシェイクで何度もログが表示される
accelerometerEnabled編集
- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { float THRSHOLD = 2.0; if (acceleration.x > THRSHOLD || acceleration.x < -THRSHOLD || acceleration.y > THRSHOLD || acceleration.y < -THRSHOLD || acceleration.z > THRSHOLD || acceleration.z < -THRSHOLD ) { if (!shakedOnce) { shakedOnce = YES; NSLog(@"shake!!!"); } else { shakedOnce = NO; } } }
※shakedOnceはインスタンス変数
こうすれば何度も呼ばれることは少なくなる
0 件のコメント:
コメントを投稿