我正在使用WampServer设置一个基本的Phaser游戏,我的项目目录位于WampServer的www
目录中,但它给我一个错误,指出SceneMainMenu is not defined
为什么以及如何解决此问题?这是我的文件:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Space Shooter</title>
</head>
<body>
<script src="phaser.js"></script>
<script src="/scenes/SceneMain.js"></script>
<script src="/scenes/SceneMainMenu.js"></script>
<script src="/scenes/SceneGameOver.js"></script>
<script src="game.js"></script>
</body>
</html>
game.js
var config = {
type: Phaser.WEBGL,
width: 400,
height:640,
backgroundColor: 'black',
physics: {
default: 'arcade',
arcade: {
gravity: {y: 0}
}
},
scene: [
SceneMainMenu,
SceneMain,
SceneGameOver
],
pixelArt: true,
roundPixels: true
};
var game = new Phaser.Game(config);
SceneGameOVer文件:
class SceneGameOver extends Phaser.Scene {
constructor() {
super({key:'SceneGameOver'})
}
}
SceneMain文件:
class SceneMain extends Phaser.Scene {
constructor() {
super({key:'sceneMain'});
}
}
SceneMainMenu文件:
class SceneMainMenu extends Phaser.Scene {
constructor() {
super({key: 'SceneMainMenu'});
}
create() {
this.scene.start('SceneMain');
}
}
如果我从VS代码的服务器运行游戏,它将运行,但是当我尝试从WampServer启动游戏时,会出现此错误
答案 0 :(得分:1)
更新的答案: 重新阅读您的代码后,我发现场景无法加载的可能原因可能是场景未处于活动状态。有关如何启动多场景游戏的详细信息,请阅读Richard Davey发布的本教程:https://phaser.io/phaser3/devlog/121
作为一个简短的答案,您可以在每个场景构造器中调用
super({key: 'YourSceneKey', active: true}
在创建游戏时激活场景。 这是我创建的示例代码笔供您参考 https://codepen.io/arthurcen/pen/yZyaNX