0

我一直在尝试使用 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 可以同时有多个 Playback 对象);如果无法播放声音,则返回 null。

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

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

4

3 回答 3

0

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

于 2010-04-27T20:05:45.883 回答
0

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

于 2010-04-27T20:11:38.633 回答
0

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

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

要解决此问题,请从非零值设置动画,如下所示:

musicVolume.animate(0.0001, 1, FADE_IN_TIME); 

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

于 2010-04-29T20:41:07.407 回答