如何使用Cocos2D检测iPhone上的抖动?

Tid*_*dly 3 iphone accelerometer cocos2d-iphone shake

我知道怎么做iPhone的震动已经在这里被问了一百万次,但我似乎找不到有关Cocos2D加速度计的任何有用的东西.我发现的所有内容都涉及使用视图,我不认为我在Cocos2D中使用任何视图,如果我认为它们对我来说是隐藏的.我希望能够判断CCLayer类中何时出现任何类型的震动?

Tid*_*dly 11

我想到了.在图层类中,您需要放置这些行;

self.isAccelerometerEnabled = YES;
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60];
shake_once = false;
Run Code Online (Sandbox Code Playgroud)

然后在图层类中实现此功能;

-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

float THRESHOLD = 2;

if (acceleration.x > THRESHOLD || acceleration.x < -THRESHOLD || 
    acceleration.y > THRESHOLD || acceleration.y < -THRESHOLD ||
    acceleration.z > THRESHOLD || acceleration.z < -THRESHOLD) {

    if (!shake_once) {
        int derp = 22/7;
        shake_once = true;
    }

}
else {
    shake_once = false;
}

}
Run Code Online (Sandbox Code Playgroud)

shake_once只是一个布尔值,可以阻止一次震动被多次注册.