Я делаю музыкальную игру, и когда пользователь нажимает ноту, она издает звук. Звук, естественно, должен воспроизводиться немедленно, когда пользователь нажимает, чтобы он мог определить, успевают ли они с музыкой.Однако кажется, что звук отстает, особенно когда нажатие нот становится быстрее.
Мой фоновый музыкальный файл .m4a воспроизводится с помощью AVAudioPlayer. Я решил использовать это вместо Cocos Denshion, поскольку у меня есть доступ к свойству currentTime. Возможно, я ошибаюсь, но я не думаю, что смогу получить доступ к этому с помощью CocosDenshion.
Я сделал очень короткий (менее секунды) файл .wav. Я предварительно загружаю свой звуковой эффект в init:
[[SimpleAudioEngine sharedEngine] preloadEffect:@"Assist.wav"];
Затем, чтобы воспроизвести звуковой эффект, в CCTouchesBegan я вызываю:
[[SimpleAudioEngine sharedEngine] playEffect:@"Assist.wav"];
После этого он вызывает мой код, чтобы определить время пользователя и присудить очки. Есть идеи, почему это может отставать, или лучший способ воспроизводить звуковые эффекты в такт музыке?
РЕДАКТИРОВАТЬ: Недавно я попробовал несколько вещей, но безрезультатно. Сначала я попытался воспроизвести звуки автоматически, когда они подошли к нужному моменту в песне. У меня все еще была задержка, поэтому я не думаю, что это медленные события касания. Я также пробовал 3 разных звуковых библиотеки.
Однако, когда я запускал симулятор, казалось, что он не тормозит. Есть у кого-нибудь идеи? Я невежественен, и это главная особенность, которую я не могу вытащить ...