我刚刚开始用Phaser制作一个简单的平台游戏,我是新手。
我设法让音乐播放,但无法让它循环播放,Google也没有帮助。
继承我使用的音频代码,有什么建议吗?
game.load.audio('hotttt', ['assets/audio/hotttt.mp3', 'assets/audio/hotttt.ogg']);
music = game.add.audio('hotttt');
music.play();
答案 0 :(得分:4)
您需要创建一个新的Phaser.Sound
对象并启用loop
。
game.load.audio('hotttt', ['assets/audio/hotttt.mp3', 'assets/audio/hotttt.ogg']);
// *true* param enables looping
music = new Phaser.Sound(game,'hotttt',1,true);
music.play();
您可以参考文档 - https://groups.google.com/forum/#!msg/realm-java/WyHJHLOqK2c/WJFYvglIGk0J
答案 1 :(得分:4)
首先,像你一样加载音频文件,然后为音频本身创建实例。
示例:
game.load.audio('background_music', ['assets/sounds/background_music.mp3', 'assets/sounds/background_music.wav']);
backgroundMusic = game.add.audio('background_music');
backgroundMusic.loop = true; // This is what you are lookig for
backgroundMusic.play();
希望它有所帮助!
答案 2 :(得分:4)
根据docs for v2.4.4(我用2.6.1测试过),您可以将额外的参数传递给class Mainview: UIviewcontroller{
// get the timer value that I want to countdown, e.g 15 mins
// then I will pass the the value to the cell class
}
class TimerCell : UIcollectionviewcell{
func timerRunning() {
timeRemaining = timeRemaining - 1
if (timeRemaining > 0)
{
let minutesLeft = Int(self.timeRemaining) / 60 % 60
let secondsLeft = Int(self.timeRemaining) % 60
self.timerLabel.text = "Refreshes in \(minutesLeft):\(secondsLeft)"
}
func runtime(){
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerRunning), userInfo: nil, repeats: true)
RunLoop.current.add(timer, forMode: RunLoopMode.commonModes)
}
}
函数进行循环
实施例
game.add.audio()
这对我来说很好
答案 3 :(得分:2)
对我有用的最佳解决方案是:
music = game.add.audio('yourMusicFile');
music.loopFull()
答案 4 :(得分:1)
任何正在使用Phaser 3线程的人。
在preload()中加载音乐
this.load.audio('musicaudio', 'assets/musicl.mp3');
然后使用您自己的函数或create()
var music = this.sound.add('musicaudio');
music.setLoop(true);
music.play();
我还不太了解初始化音频的机制,但为了在Chrome环境中进行初始化,我必须在初始配置声明中进行设置。
audio: {
disableWebAudio: true,
noAudio: false
},
P.S。我读过某个地方,您不应使用mp3循环播放,但对我来说效果很好。也许有短暂的停顿。