0

所以最近我想我想出了一个解决方案,只是发现当我在关卡中添加了多个相同的对象类型时它不起作用。

我正在做的是遍历我的不同对象列表并检查它们中的任何一个是否与玩家发生碰撞,如果它们是我播放与玩家碰撞的声音,然后我将声音的布尔值设置为真,表示现在已经播放了声音。

当它们没有发生碰撞或当前迭代的对象没有与玩家碰撞时,我将声音布尔值设置为 false。因此,正如您可能看到的那样,当添加多个相同对象时会出现问题,因为其中一个会将布尔值设置为 false,并且只要玩家与其中一个碰撞,声音就会一遍又一遍地播放的对象。

所以我已经没有解决方案来解决这个问题,所以我正在寻求帮助。

感谢任何可以提供帮助的人。

4

2 回答 2

0

像声音管理器类这样的东西怎么样?不要告诉声音播放,而是告诉声音管理器播放那个声音。然后,管理器播放声音并忽略其他播放该声音的请求,直到完成。根据 jmr 的建议,这里的关键是不要在他没有碰撞时将布尔值设置为 false,当经理识别出声音播放完毕时,它将设置为 false。

顺便说一句,这样做的好处是允许在管理器中添加额外的逻辑。如果第二个请求在第一个请求的一半之后,您可以允许管理器两次播放相同的声音,而不是将其限制为一次只播放一个声音。或者,对于某些声音,您可能希望他们排队等待轮到他们播放。

于 2013-02-02T02:13:35.110 回答
0

在检测到碰撞时将其设置true为,仅false在声音播放完毕后将其设置为。

于 2013-01-27T16:02:35.993 回答