我一直在尝试 PulpCore,试图创造 我自己的塔防游戏 (还不能玩),我非常喜欢它,但我遇到了一个我不太明白的问题。我使用 JOrbis 扩展了 PulpCore,以允许播放 OGG 文件。工作正常。然而,pulpCore 似乎在设置音量动画时循环声音有问题。我也用 wav 文件尝试过,以确保不是 jOrbis 破坏了它。代码是这样的:

Sound bgMusic = Sound.load("music/music.ogg");
Playback musicPlayback;
...

musicVolume = new Fixed(0.75);
musicPlayback = bgMusic.loop(musicVolume);
//TODO figure out why it's NOT looping when volume is animated
//  musicVolume.animate(0, musicVolume.get(), FADE_IN_TIME);

只要最后一行被注释掉,这段代码就会在无限循环中一次又一次地播放music.ogg(我可以通过在从loop()返回的Playback对象上调用stop来停止它。但是,我希望音乐能够平滑淡入,因此按照 PulpCore API 文档的建议,我添加了最后一行,它将创建淡入效果,但音乐只会播放一次,然后停止。我想知道这是为什么?这是一些文档:

回放 pulpcore.sound.sound.loop(固定级别)

循环播放此声音剪辑 指定的音量级别(0.0 至 1.0)。该级别可能具有属性 附加动画。

参数:等级

返回:一个 Playback 对象 独特的声音播放(一个 Sound 可以 有多台同时播放 objects) 或 null 如果声音可以 不被播放。

那么可能是什么问题呢?我重复一遍,最后一行声音会淡入但不会循环,没有它它会循环但以指定的 0.75 音量级别开始。为什么我无法设置循环音乐播放的音量动画?我究竟做错了什么?有人有使用pulpCore的经验并遇到过这个问题吗?任何人都可以下载 PulpCore 并尝试循环淡入(淡出)的音乐吗?

笔记:我需要保留对返回的 Playback 对象的引用,以便稍后可以终止音乐。

有帮助吗?

解决方案 3

最后,我设法从纸浆核心作者那里得到了这个问题的解释和简单的解决方法。所以这里是:

这是一个 PulpCore 错误。当输出 音量为零,声音播放器停止 循环播放声音。

要解决此问题,请从 不为零的值,如下所示:

musicVolume.animate(0.0001, 1, FADE_IN_TIME); 

链接到pullcore Google 群组上的此内容

其他提示

如果 animate 方法仅设置选项,它可能会不可预测地工作 - 尝试用循环本身切换此行,以便首先应用动画。

您能否在非循环播放时设置音量动画,然后在播放结束时以固定级别开始循环?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top