独自のタワー ディフェンス ゲーム(まだプレイ可能ではありません)を作成しようとして、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 オブジェクトへの参照を保持する必要があります。