Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t添加移相器JS状态_Javascript_Phaser Framework - Fatal编程技术网

Javascript Can';t添加移相器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

我试图在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(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);