iOS和Cocos2d - 在游戏循环中播放一次声音

时间:2013-09-08 13:44:32

标签: ios cocos2d-iphone

这更像是一个普遍的“最佳实践”问题,所以我真的没有一个例子。我只想弄清楚人们通常如何处理这个问题 假设我有一个mainGameLoop方法,计划每秒调用60次。在这个方法中,我拥有当前场景的所有逻辑。现在,我想在发生某种状态时使用SimpleAudioEngine播放声音效果 问题是,一旦这种状态发生,它会保持一段时间,这意味着我的声音效果会一次又一次地快速播放,直到状态发生变化(毕竟,我们在游戏循环中)。
我通常的解决方案是使用布尔值只播放一次效果。问题是,我现在面临着更多不同的状态和影响,这意味着很多布尔人
我想知道人们在游戏循环中播放声音效果时是否有更好的方式 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您需要“状态已更改”事件。每当状态变为“开启”时,声音就会播放。由于您必须记录此状态更改,因此几乎没有任何方法可以提供布尔值来记录每个状态。

当然,您不会单独编码每个州。假设您有100个游戏对象(即水果),每个水果在收集时播放不同的声音,您将拥有一个带有“fruitType”变量的水果类。当采摘水果时,您可以:

  • 检查这种水果类型是否已经“携带”
  • 播放声音,如果不是
  • 根据fruitType
  • 选择声音