3

iPhoneのシェイクの仕方はここで何百万回も聞かれているのは知っていますが、Cocos2Dを使った加速度計に関しては何も役に立たないようです。私が見つけたものはすべてビューの使用を含み、Cocos2Dでビューを使用しているとは思いません。私がそうであれば、ビューは私から隠されていると思います。CCLayerクラス内で何らかのシェイクが発生したことを知りたいですか?

4

1 に答える 1

11

私はそれを考え出した。レイヤークラスでは、これらの行を配置する必要があります。

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

次に、この関数をレイヤークラスに実装します。

-(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は、1つのシェイクが複数回登録されるのを防ぐためのブール値です。

于 2010-08-05T19:08:56.070 に答える