Как логически организовать ритм / тайминг в AS3? - PullRequest
1 голос
/ 15 января 2012

Я работаю над ритмической игрой, настроенной на конкретную песню в ActionScript, в которой триггер появляется в правой части экрана и перемещается влево. Игрок должен нажать на триггер, когда он касается левой стороны экрана, и я пытаюсь найти наиболее эффективный для кода способ запуска триггеров синхронно с синхронизацией песни. Единственное, что сразу пришло на ум - функция обновления, связанная с основным циклом, которая проверяет, находится ли песня в определенную секунду в каждом кадре, но это кажется ненужным. Есть идеи?

1 Ответ

1 голос
/ 16 января 2012

Я думаю, что проще всего сделать это несколько точно:

1 / поместить музыку в файл .flv и добавить к нему ключевые точки.Затем триггеры могут быть синхронизированы с контрольными точками.Я предполагаю, что вам также придется немного их компенсировать, чтобы соответствовать тому, что вы видите, и тому, что вы слышите.Это определенно потребует некоторых экспериментов.Однако при использовании этого решения необходимо помнить, что потоковая передача файла может быть смещена, приостановлена ​​и т. Д. В зависимости от скорости D / L.

или

2 / Другое решение будетимпортировать звук во временную шкалу мувиклипа в виде потока, а затем разрешить ему отправлять события в соответствующих кадрах для синхронизации с триггерами.Я думаю, что это будет самое точное решение.

Попытка сделать это полностью с помощью кода, я думаю, будет недостаточно точной и, очевидно, зависит и от музыки.Если вы используете электронную музыку, ритм машины «совершенен», но если она создана человеком, то есть небольшие вариации и «ошибки», которые испортят синхронизацию.Однако, если вы хотите пойти по этому пути,

3 / вам нужно будет проанализировать данные, полученные с помощью SoundMixer.computeSpectrum http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundMixer.html#computeSpectrum()

Очевидно, что это единственное решение, которое имеет смыслесли вы хотите обновить песню.

У меня нет большого опыта в подобных вещах, хотя, может быть, есть и лучшие решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...