Phaser州经理无法找到某些州?

时间:2016-07-16 12:26:54

标签: javascript state phaser-framework

我的index.html文件似乎包含了所有必需的JS文件,然后定义了它们的状态。这就是我所见过的人们在网上做的事情,它对他们来说很好。



<html>
<head>
    <meta charset = "UTF-8"/>
    <title>Test</title>
    <script src = "phaser.js"></script>
    <script src = "Boot.js"></script>
    <script src = "Preload.js"></script>
    <script src = "MainMenu.js>"></script>
</head>


<body>
    <script type="text/javascript">
        window.onload = function(){

            var game = new Phaser.Game(800,600,Phaser.AUTO,'');

            game.state.add('Boot',Game.Boot);
            game.state.add('Preload',Game.Preload);
            game.state.add('MainMenu',Game.MainMenu);

            game.state.start('Boot');

        }

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

我的问题是,虽然此代码成功地将状态从Boot.js更改为Preload.js,但它声称存在&#34;未找到关键字状态:MainMenu&#34;。我非常困惑,而且我使用的是Phaser版本2.6.1

为了你疲惫的眼睛,我在这里连接了一个连接的Pastebin中的Boot.js文件,Preload.js和MainMenu.js文件:http://pastebin.com/sJYTsCdY

很抱歉,如果我犯了礼仪错误,这是我第一次发布到StackOverflow。任何帮助将不胜感激,谢谢!!

1 个答案:

答案 0 :(得分:0)

尝试在pastebin的第76行将Game.MainMenu更改为Game.MainMenu.prototype

我支持的是Phaser尝试将MainMenu添加为新状态,当它尝试实例化它时,它会失败,因为没有函数可以充当构造函数(使用{{1时需要它)这就是Phaser在添加状态时在内部使用的方法)。您首先定义new作为构造函数,然后重写它(您将其他内容分配给同一个Game.MainMenu = function() { }),并且Phaser无法再创建MainMenu实例。