移相器游戏未加载

时间:2019-01-22 09:53:51

标签: javascript wampserver phaser-framework

我正在使用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启动游戏时,会出现此错误

1 个答案:

答案 0 :(得分:1)

更新的答案: 重新阅读您的代码后,我发现场景无法加载的可能原因可能是场景未处于活动状态。有关如何启动多场景游戏的详细信息,请阅读Richard Davey发布的本教程:https://phaser.io/phaser3/devlog/121

作为一个简短的答案,您可以在每个场景构造器中调用

super({key: 'YourSceneKey', active: true}

在创建游戏时激活场景。 这是我创建的示例代码笔供您参考 https://codepen.io/arthurcen/pen/yZyaNX