I’m working on a rhythm-based game set to a specific song in ActionScript, in which a trigger spawns on the right side of the screen and moves left. The player must hit the trigger when it touches the left side of the screen, and I’m trying to figure out the most code-efficient way to spawn triggers in sync with the timing of the song. The only thing that came immediately to mind was an update function tied to the main loop that checks if the song is at a certain second each frame, but that seems unnecessary. Any ideas?
Share
I think the easiest to do this somewhat accurately is
1/put the music into a .flv file and add cue points to it. Then the triggers can be synced to the cue points. My guess is that you’ll also have to offset them somewhat to match what you see to what you hear though. It will definitely take some experimentation.
With this solution however you need to keep in mind that the streaming of the file can be staggered, paused etc. depending on the D/L rate.
or
2/Another solution would be to import the sound into the timeline of a movieclip as a stream and then let it dispatch events on the corresponding frames to sync it with triggers. I think this will be the most precise solution.
Trying to do this fully through code will not be accurate enough, I think, and obviously depends on the music too. If you’re using electronic music, the rhythm is machine “perfect”, but if it’s human made there are slight variations and “mistakes” that will screw up the syncing. However if you wish to go down this road,
3/ you’ll need to analyse the data that is produced through
SoundMixer.computeSpectrumhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundMixer.html#computeSpectrum()
Obviously that’s the only solution that makes sense if you want to be able to update the song.
I don’t have a lot of experience with these kinds of things though, maybe there are far better solutions.