我正在尝试创建一个侧面滚动射击游戏原型(prototype),在该原型(prototype)中,敌人和子弹的 Action 要定时进行节拍。我正在努力的目标bpm是120。

显然,这是声音的定时中心,我首先尝试创建一个节拍器作为指导。我使用getTimer函数来计算帧时间并累积该值,直到达到正确的时间(120bpm时为500ms),然后播放声音。

您可以想象,这并不能带来恒定的结果,这表明有更好的选择。所以我的问题是,这种类型的游戏最准确的计时方法是什么?这仅仅是时间问题吗?我正在使用Haxe NME,是否可以从音频设备上移开太远而不能以足够快的速度播放声音?

最佳答案

在不同的NME平台上播放Sound将具有不同的行为,包括不同的延迟。即使在普通的Flash中,Sound.playSoundChannel.position也不太准确!

对于有节奏的游戏,您确实确实需要NME当前没有的低级音频控制。如果您以Flash为目标,则可以使用 SampleDataEvent 动态混合音频并获得更准确的时序。计划将来在NME(source)中添加对SampleDataEvent的跨平台支持。

10-08 14:32