Итак, я немного предыстория. Я хотел реализовать эффект частиц и звуковой эффект, который длится около 3 секунд или около того, когда пользователь встряхивает свою iDevice. Но первый выпуск появился, когда сборка в UIEvent для коктейлей отказалась работать. Поэтому я принял совет нескольких ветеранов Cocos просто использовать какой-то сценарий, чтобы получить «сильные» акселерометры в качестве встряски. До сих пор вели себя отлично.Cocos2d встряска/акселерометр вопрос
Проблема в том, что если вы продолжаете встряхивать, это просто ударяет частицу и звучит снова и снова. Теперь это не будет большой сделкой, за исключением того, что это произойдет, даже если вы будете стараться не делать этого. Поэтому я надеюсь, что это отключить акселерометр, когда начнется эффект эффекта/звука частиц, а затем снова его можно использовать, как только они закончатся. Теперь я не знаю, должен ли я делать это по расписанию, NStimer или какой-либо другой функции. Я открыт для ВСЕХ предложений. вот мой текущий «трясущийся» код.
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
const float violence = 1;
static BOOL beenhere;
BOOL shake = FALSE;
if (beenhere) return;
beenhere = TRUE;
if (acceleration.x > violence * 1.5 || acceleration.x < (-1.5* violence))
shake = TRUE;
if (acceleration.y > violence * 2 || acceleration.y < (-2 * violence))
shake = TRUE;
if (acceleration.z > violence * 3 || acceleration.z < (-3 * violence))
shake = TRUE;
if (shake) {
id particleSystem = [CCParticleSystemQuad particleWithFile:@"particle.plist"];
[self addChild: particleSystem];
// Super simple Audio playback for sound effects!
[[SimpleAudioEngine sharedEngine] playEffect:@"Sound.mp3"];
shake = FALSE;
}
beenhere = FALSE;
}