这更像是一个普遍的“最佳实践”问题,所以我真的没有一个例子。我只想弄清楚人们通常如何处理这个问题
假设我有一个mainGameLoop方法,计划每秒调用60次。在这个方法中,我拥有当前场景的所有逻辑。现在,我想在发生某种状态时使用SimpleAudioEngine播放声音效果
问题是,一旦这种状态发生,它会保持一段时间,这意味着我的声音效果会一次又一次地快速播放,直到状态发生变化(毕竟,我们在游戏循环中)。
我通常的解决方案是使用布尔值只播放一次效果。问题是,我现在面临着更多不同的状态和影响,这意味着很多布尔人
我想知道人们在游戏循环中播放声音效果时是否有更好的方式
有什么建议吗?
答案 0 :(得分:1)
您需要“状态已更改”事件。每当状态变为“开启”时,声音就会播放。由于您必须记录此状态更改,因此几乎没有任何方法可以提供布尔值来记录每个状态。
当然,您不会单独编码每个州。假设您有100个游戏对象(即水果),每个水果在收集时播放不同的声音,您将拥有一个带有“fruitType”变量的水果类。当采摘水果时,您可以: