Javascript Can';t添加移相器JS状态
我试图在Phaser JS中添加并启动一个状态,但我遇到了一个奇怪的错误。代码如下:Javascript Can';t添加移相器JS状态,javascript,phaser-framework,Javascript,Phaser Framework,我试图在Phaser JS中添加并启动一个状态,但我遇到了一个奇怪的错误。代码如下: var game = new Phaser.Game(800, 600, Phaser.AUTO); var GameState = { preload: function(){ }, create: function(){ }, update: function(){ } }; game.state.add('GameState', GameState); game.state.start(Game
var game = new Phaser.Game(800, 600, Phaser.AUTO);
var GameState = {
preload: function(){
},
create: function(){
},
update: function(){
}
};
game.state.add('GameState', GameState);
game.state.start(GameState);
我得到了一个错误:
未捕获的TypeError:无法读取未定义的属性“add”
在main.js:18
这通常意味着您试图访问尚未定义的变量 在代码中查找您在某个对象上使用
.add(
)的位置。无论该对象是什么,在代码运行时,它都没有定义,这意味着它没有用任何值初始化
看起来您正确地遵循了文档中的示例-
在最简单的形式中,可以通过向构造函数提供参数来创建Phaser游戏:
在上面的例子中,它直接传入一个State对象
还可以使用状态管理器执行以下操作:
在上面的示例中,向状态管理器添加了4个状态,并且
Phaser被告知在启动完成后开始运行启动状态
正在初始化。有一些示例项目模板可以在中使用
Phaser GitHub repo,位于resources文件夹内
除了指定参数,还可以传递单个对象
相反:
但是文档是矛盾的,因为它说默认情况下,state
是null
参数:
状态对象null默认状态对象。对象
由相位器状态函数(预加载、创建、更新、渲染)组成
或空
状态管理器尚未初始化为
game.state
。请尝试使用verison,通过new Phaser.game()
调用传递状态。这通常意味着您正在尝试访问尚未定义的变量
在代码中查找您在某个对象上使用.add(
)的位置。无论该对象是什么,在代码运行时,它都没有定义,这意味着它没有用任何值初始化
看起来您正确地遵循了文档中的示例-
在最简单的形式中,可以通过向构造函数提供参数来创建Phaser游戏:
在上面的例子中,它直接传入一个State对象
还可以使用状态管理器执行以下操作:
在上面的示例中,向状态管理器添加了4个状态,并且
Phaser被告知在启动完成后开始运行启动状态
正在初始化。有一些示例项目模板可以在中使用
Phaser GitHub repo,位于resources文件夹内
除了指定参数,还可以传递单个对象
相反:
但是文档是矛盾的,因为它说默认情况下,state
是null
参数:
状态对象null默认状态对象。对象
由相位器状态函数(预加载、创建、更新、渲染)组成
或空
状态管理器尚未初始化为
game.state
。请尝试使用verison,通过new Phaser.game()传递状态
调用。相量器2和相量器3之间有很大的变化。到目前为止,相量器2已经有了很好的文档记录,您发现的大多数示例代码都将使用它。相量器3的文档仍在烘焙中。相量器2和相量器3之间有很大的变化。到目前为止,相量器2已经有了很好的文档记录,并且您已经找到了大多数示例代码d将使用它。Phaser 3文档仍在烘焙中。查看代码时,您忘记添加“”
game.state.start(GameState)->错误
game.state.start(“GameState”)->成功查看代码时,您忘记添加“” game.state.start(GameState)->错误
game.state.start(“GameState”)->success不起作用,我以前在phaser中处理过状态,一切都很顺利。
StateManager
初始化与否不应该对是否将默认状态传递给构造函数有任何影响。不起作用,我以前在phaser中处理过状态,一切都很顺利。StateManager代码>初始化与否不应该对是否将默认状态传递给构造函数有任何影响。我将您的代码扔到中,得到的唯一错误是Phaser.StateManager-未找到键:[object]的状态
。如果您这样做,它就可以正常工作。您使用的是什么版本的Phaser,还有其他代码没有共享吗?我使用了他们网站(3.2.1版)上的文件,现在我已经包含了您的版本(我将您的代码扔进了其中,唯一的错误是Phaser.StateManager-没有找到键:[object]的状态
。如果您这样做,它将正常工作。您使用的是什么版本的Phaser,还有其他代码没有共享吗?我使用了他们网站上的文件(3.2.1版),现在我已经包含了您的版本(
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create });
var game = new Phaser.Game(800, 600, Phaser.AUTO);
game.state.add('Boot', BasicGame.Boot);
game.state.add('Preloader', BasicGame.Preloader);
game.state.add('MainMenu', BasicGame.MainMenu);
game.state.add('Game', BasicGame.Game);
game.state.start('Boot');
var config = {
width: 800,
height: 600,
renderer: Phaser.AUTO,
antialias: true,
multiTexture: true,
state: {
preload: preload,
create: create,
update: update
}
}
var game = new Phaser.Game(config);