【问题标题】:What is the most accurate method for timing beats of a rhythm game in Haxe (NME)?在 Haxe (NME) 中对节奏游戏的节拍计时最准确的方法是什么?
【发布时间】:2013-02-10 15:47:17
【问题描述】:

我正在尝试创建一个横向卷轴射击游戏原型,其中敌人和子弹的动作是按节拍计时的。我正在努力的目标 bpm 是 120。

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

正如您可以想象的那样,这不会给出恒定的结果,而是表明存在更好的选择。所以我的问题是,对于这种类型的游戏,最准确的声音计时方法是什么?这仅仅是时间问题吗?我正在使用 Haxe NME,我会不会离音频设备太远而无法足够快地播放声音?

【问题讨论】:

  • 线程?让线程尽可能快地执行并以这种方式跟踪时间?然后主线程会从中触发?

标签: audio time haxe nme


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回复迈克。是的,这是我最后使用的方法,但正如你所说,我很失望它只适用于 Flash。很高兴知道他们正在考虑跨平台解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多