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 件のコメント:
コメントを投稿