这是我为科学课编写的简单宇宙飞船冒险游戏的一小段。目标是在不播放背景音乐时播放配乐菜单音乐。不起作用的代码是
menuMusic.play();
一旦我删除此行,一切都会运行
完美。
我尝试用有效的
menuMusic.play();
替换backgroundMusic.play();
,但它仍然给出未定义的错误,所以这不是需要替换的音乐的问题。我也尝试过分离代码的两个部分,但这没有任何帮助。
//Variables
var menu = 0; // 0 = main menu, 1 = level select, 2 = gameplay, 3 = you died, 4 = level complete, 5 = credits
var playedMenuMusic = false; //false has not played, true has played
var playedBackgroundMusic = false; //false has not played, true has played
function setup() {
menuMusic = loadSound("centaur-forest-60695.mp3");
backgroundMusic = loadSound("8bit-music-for-game-68698.mp3");
}
function draw() {
if (
(menu == 2 || menu == 5) &&
backgroundMusic.isPlaying() == false &&
playedBackgroundMusic == false
) {
//Background Music
backgroundMusic.play();
playedBackgroundMusic = true;
//Menu Music
menuMusic.stop();
playedMenuMusic = false;
}
if (
(menu == 0 || menu == 1 || menu == 3 || menu == 4) &&
menuMusic.isPlaying() == false &&
playedMenuMusic == false
) {
//Menu Music
menuMusic.play();
playedMenuMusic = true;
//Background Music
backgroundMusic.stop();
playedBackgroundMusic = false;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.9.0/p5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.6.0/addons/p5.sound.min.js"></script>
好吧我修好了,问题是 menuMusic = loadSound("centaur-forest-60695.mp3");和 backgroundMusic = loadSound("8bit-music-for-game-68698.mp3"); 正在设置而不是预加载