Как обнаружить дрожание на iPhone с помощью Cocos2D? - PullRequest
3 голосов
/ 05 августа 2010

Я знаю, как сотрясать iPhone было задано миллион раз, но я не могу найти ничего полезного в отношении акселерометра с Cocos2D.Все, что я нашел, включает в себя использование представлений, и я не думаю, что использую какие-либо представления в Cocos2D, я думаю, они скрыты от меня.Я хочу быть в состоянии сказать, когда произошла какая-то встряска в классе CCLayer?

1 Ответ

11 голосов
/ 05 августа 2010

Я понял это.В классе слоя вы должны поместить эти строки;

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 - просто логическое значение, чтобы остановить регистрацию одного встряскиболее одного раза.

...