我正在制作一个2D平台游戏,其中我使用Phaser-framework (版本3.15.1)来使生活变得更容易,并为游戏的第一个关卡提供了一个平铺地图。我已经将地图从平铺导出为.json文件,并读取到主JS文件中。然而,在我的索引HTML文件中,所有的JS文件都是从其中运行的,它出现了以下错误:
Uncaught TypeError: Cannot read
property 'add' of index.html:17 undefined
at index.html:17
at index.html:20相关代码如下:
<head>
<meta charset="UTF-8">
<title>Nightly Neighbours Using Phaser</title>
<script type="text/javascript" src = "js/phaser.js"></script>
<script type="text/javascript" src = "js/phaser-arcade-physics.js">
</script>
<script type="text/javascript" src = "js/Boot.js"></script>
<script type="text/javascript" src = "js/Preload.js"></script>
<script
type="text/javascript"src="js/NightlyNeighbours1WithPhaser.js">
</script>
<script type="text/javascript">
(function() {
game = new Phaser.Game(window.innerWidth *
window.devicePixelRatio,
window.innerHeight * window.devicePixelRatio, Phaser.AUTO);
game.state.add("Boot", Boot);
game.state.add("Preload", Preload);
game.state.add("NightlyNeighbours1WithPhaser", Main);
game.state.start("Boot");
})();
</script>
</head>错误指的是lines 17 - 20
非常感谢!
发布于 2019-01-02 22:20:46
在Phaser3中,从使用states改为使用scenes。根据您的代码,看起来您正在使用Phaser2代码和Phaser3库。
有一个很棒的官方教程( Part 5从代码方面开始,因为看起来你可能已经设置好了环境),涵盖了Phaser3。
在该教程中,Phaser.Game的定义如下所示:
var config = {
type: Phaser.AUTO,
width: 800,
height: 600,
physics: {
default: 'arcade',
arcade: {
gravity: { y: 200 }
}
},
scene: {
preload: preload,
create: create
}
};
var game = new Phaser.Game(config);您还可以通过调用game.scene.add(...)向游戏中添加新场景。
https://stackoverflow.com/questions/53997956
复制相似问题