2012-01-15 18 views
1

私はActionScriptの特定の曲に設定されたリズムベースのゲームに取り組んでいます。このゲームでは、トリガが画面の右側に生成されて左に移動します。プレイヤーは画面の左側に触れるときにトリガーを叩く必要があります。私は、トリガーを発音させるコード効率の良い方法を曲のタイミングと同期させて調べようとしています。すぐに思いついたのは、メインループに接続された更新機能で、曲が各フレームの特定の秒に収まっているかどうかを確認することですが、不要なようです。何か案は?AS3のリズム/タイミングを論理的に整理するにはどうすればよいですか?

答えて

1

私はやや正確にこれを行う最も簡単なの

1 /のFLVファイルに音楽を入れて、そこにキューポイントを追加すると思います。その後、トリガをキューポイントに同期させることができます。私の推測では、あなたが見たものとあなたが聞いているものとを一致させるために、それらをある程度相殺しなければならないということです。間違いなくいくつかの実験が行われます。 しかし、この解決方法では、ファイルのストリーミングをD/Lレートに応じてずらしたり、一時停止したりすることができます。

又は

2 /別の解決策は、ストリームとしてのムービークリップのタイムラインにサウンドをインポートし、それがトリガとそれを同期する対応するフレームにイベントをディスパッチできるようになるであろう。私はこれが最も正確な解決策になると思います。

これでコードを完全に実行しようとすると、正確ではないと私は思っています。明らかに音楽にも依存しています。電子音楽を使用している場合、リズムはマシン "完璧"ですが、人が作った場合、わずかなバリエーションと "間違い"があり、同期が崩れます。あなたは、この道を行くために

3をご希望の場合は/あなたは(SoundMixer.computeSpectrum http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundMixer.html#computeSpectrumを経て製造されたデータを分析する必要があります)

明らかにそれはあなたがなりたい場合は理にかなっている唯一のソリューションです曲を更新することができます。

私はこれらの種類のもので多くの経験を持っていませんが、もっと良い解決策があるかもしれません。

+0

+1の 'computeSpectrum'です。それのようなものは実行可能です。難しいが、できる。 –

+0

ありがとう@Creynders、これは素晴らしい情報です。私は 'computeSpectrum'を試してみます。 – Jyakku

関連する問題