我的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;
我的问题是,虽然此代码成功地将状态从Boot.js更改为Preload.js,但它声称存在&#34;未找到关键字状态:MainMenu&#34;。我非常困惑,而且我使用的是Phaser版本2.6.1
为了你疲惫的眼睛,我在这里连接了一个连接的Pastebin中的Boot.js文件,Preload.js和MainMenu.js文件:http://pastebin.com/sJYTsCdY。
很抱歉,如果我犯了礼仪错误,这是我第一次发布到StackOverflow。任何帮助将不胜感激,谢谢!!
答案 0 :(得分:0)
尝试在pastebin的第76行将Game.MainMenu
更改为Game.MainMenu.prototype
。
我支持的是Phaser尝试将MainMenu
添加为新状态,当它尝试实例化它时,它会失败,因为没有函数可以充当构造函数(使用{{1时需要它)这就是Phaser在添加状态时在内部使用的方法)。您首先定义new
作为构造函数,然后重写它(您将其他内容分配给同一个Game.MainMenu = function() { }
),并且Phaser无法再创建MainMenu实例。