未捕获的TypeError:无法读取属性'添加'未定义的(Phaser)

时间:2018-03-30 15:48:57

标签: javascript html phaser-framework

我在这个网站上有点新鲜,目前正在使用方括号中的这款迷你RPG相位器游戏。假设没有我能看到的拼写错误,每次我上线时,我都会遇到我的main.js中的这个dang错误,我查看了我的main.js和我的index.html,无法找到问题,我的phaser.js在js / phaser.js下。



var RPG = RPG || {};

var game = new Phaser.Game(640, 480, Phaser.CANVAS);

game.state.add("TitleState", new RPG.TitleState());
game.state.start("TitleState");

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
        <title>KawaiiRPG</title>
    </head>
    
    <style>
        body {
            padding: 0px;
            margin: 0px;
            background-color: black;
        }
    </style>

    
    <body>
    
       <script src="js/phaser.js"></script>
        
        <script src="js/main.js"></script>
        
    </body>


</html>
&#13;
&#13;
&#13;

screen shot of error

1 个答案:

答案 0 :(得分:0)

这里的主要问题是,afaik,Phaser 3(显示在屏幕截图的控制台中)必须知道很少的文档;您可以找到的大多数文档和示例都参考Phaser 2或Phaser 3的早期测试版。

我是Phaser的新手(以及一般的游戏开发),我也在阅读Phaser 2示例并弄清楚如何让它们在Phaser 3中工作时遇到问题。所以这是我的尝试...

有什么问题:在Phaser 3中没有状态场景,每个场景都充当世界https://phaser.io/phaser3/contributing/part5)中的状态管理不同。

解决方案:不确定如何动态添加场景到游戏中,但是通过使用配置对象,您可以在创建游戏时设置初始场景对象:

var myRpgTitleScene = {
  preload: function(){},
  create: function(){},
  update: function(){}
}
var config = {
    type: Phaser.CANVAS,  
    width: 640,
    height: 480
  },
  scene: myRpgTitleScene
}

var game = new Phaser.Game(config);