3

我知道如何为 iPhone 摇晃已经被问了一百万次了,但我似乎找不到任何关于 Cocos2D 加速度计的有用信息。我发现的一切都涉及使用视图,我认为我没有在 Cocos2D 中使用任何视图,如果我认为它们对我来说是隐藏的。我希望能够知道 CCLayer 类中何时发生了任何形式的震动?

4

1 回答 1

11

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

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 只是一个布尔值,用于阻止一次摇动被多次注册。

于 2010-08-05T19:08:56.070 回答