0

独自のタワー ディフェンス ゲーム(まだプレイ可能ではありません)を作成しようとして、PulpCore を試していましたが、非常に楽しんでいます。よくわからない問題に遭遇しました。PulpCore を JOrbis で拡張して、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 ドキュメントのアドバイスに従って、フェードインを作成する最後の行を追加しましたが、音楽は 1 回だけ再生されてから停止します。ドキュメント:

再生pulpcore.sound.Sound.loop(固定レベル)

指定された音量レベル (0.0 から 1.0) でこのサウンド クリップをループします。レベルには、プロパティ アニメーションが添付されている場合があります。

パラメータ: レベル

戻り値: この固有のサウンド再生用の Playback オブジェクト (1 つの Sound が多数の Playback オブジェクトを同時に持つことができます)、またはサウンドを再生できなかった場合は null。

では、何が問題になるのでしょうか?繰り返しますが、最後の行では、サウンドはフェード インしますが、ループしません。ループしないと、指定された 0.75 のボリューム レベルで始まります。ループ音楽再生のボリュームをアニメートできないのはなぜですか? 私は何を間違っていますか?誰もがpulpCoreの経験があり、この問題に遭遇しましたか? 誰でも PulpCore をダウンロードして、フェードイン (アウト) する音楽をループしてみてください。

注: 後で音楽を削除できるように、返された Playback オブジェクトへの参照を保持する必要があります。

4

3 に答える 3

0

If the animate method only sets the option, it can work unpredictably - try switching this line with the loop itself, so the animation applies first.

于 2010-04-27T20:05:45.883 に答える
0

ループしていない再生でボリュームをアニメートし、その再生の最後に固定レベルでループを開始できますか?

于 2010-04-27T20:11:38.633 に答える
0

最後に、パルプ コアの作者からこの問題の説明と簡単な回避策を得ることができました。だからここにあります:

これは PulpCore のバグです。出力ボリュームがゼロの場合、サウンド プレーヤーはサウンドのループを停止します。

これを回避するには、次のようにゼロ以外の値からアニメーション化します。

musicVolume.animate(0.0001, 1, FADE_IN_TIME); 

パルプコア Google グループのこれへのリンク

于 2010-04-29T20:41:07.407 に答える