我知道在这里已经有人问过如何为iPhone摇晃一百万遍了,但是对于Cocos2D的加速度计,我似乎找不到任何有用的东西。我发现的所有内容都涉及使用视图,并且我认为Cocos2D中没有使用任何视图,如果我认为它们是对我隐藏的。我想知道CCLayer类何时发生了任何形式的抖动?

最佳答案

我想到了。在图层类中,您需要放置以下行;

self.isAccelerometerEnabled = YES;
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60];
shake_once = false;


然后在layer类中实现此功能;

-(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;
}

}


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

10-04 23:14