phaser.js,javascript,未捕获类型错误:无法读取属性';forEach&x27;未定义的

phaser.js,javascript,未捕获类型错误:无法读取属性';forEach&x27;未定义的,javascript,phaser-framework,Javascript,Phaser Framework,我是Phaser.js和Javascript的初学者。我正在做一个游戏,我有一个错误,我不知道如何修复它。 我想我可以解释为什么会发生这种情况:当我调试Philics group SpritesPlatform时,它表明它不是未定义的。。我不知道为什么 这里是我遇到错误的文件(我不能把整个应用程序放在这里,因为有很多文件,但问题只涉及这个文件,精灵加载到另一个文件中) 文件game.js(main.js) MyGame.Game=函数(游戏){ this.game;//对当前运行的游戏(Phas

我是Phaser.js和Javascript的初学者。我正在做一个游戏,我有一个错误,我不知道如何修复它。 我想我可以解释为什么会发生这种情况:当我调试Philics group SpritesPlatform时,它表明它不是未定义的。。我不知道为什么

这里是我遇到错误的文件(我不能把整个应用程序放在这里,因为有很多文件,但问题只涉及这个文件,精灵加载到另一个文件中)

文件game.js(main.js)

MyGame.Game=函数(游戏){
this.game;//对当前运行的游戏(Phaser.game)的引用
this.add;//用于添加精灵、文本、组等(Phaser.GameObjectFactory)
this.load;//用于预加载资源(Phaser.Loader)
this.stage;//游戏阶段(Phaser.stage)
this.state;//状态管理器(Phaser.StateManager)
this.world;//游戏世界(Phaser.world)
this.physics;//物理管理器(Phaser.physics)
};
MyGame.Game.prototype={
init:函数(){
this.game.renderer.renderSession.roundPixels=true;
这个.physics.startSystem(Phaser.physics.ARCADE);
这个.physics.arcade.gravity.y=800;
},
创建:函数(){
//背景色蓝
this.stage.backgroundColor=0x479cde;
//将精灵添加到物理组
SpritesPlatform=this.game.add.physicsGroup();
a=SpritesPlatform.create(0,150,'sprite');
a、 刻度设置为(0.2,0.2);
b=SpritesPlatform.create(79187,‘sprite2’);
b、 刻度设置为(0.2,0.2);
c=SpritesPlatform.create(300100,'sprite3');
c、 刻度设置为(0.4,0.4);
SpritesPlatform.setAll('body.allowGravity',false);
SpritesPlatform.setAll('body.immoved',true);
SpritesPlatform.setAll('body.velocity.x',150);
//测试组是否包含精灵
/*var i=0;
for(变量i=0,len=spritesformit.children.length;i如果首次创建组时(SpritesPlatform.body.velocity.x<0&&SpritesPlatform.x,则必须这样声明:

this.SpritesPlatform = this.game.add.physicsGroup();
无论何时,只要您想引用此组,都可以使用
console.log(this.spritesformat)

编辑:

你实际上不必做那样的事

MyGame.Game = function (game) {
  this.game;      //  a reference to the currently running game (Phaser.Game)
  this.add;       //  used to add sprites, text, groups, etc (Phaser.GameObjectFactory)
  this.load;      //  for preloading assets (Phaser.Loader)
  this.stage;     //  the game stage (Phaser.Stage)
  this.state;     //  the state manager (Phaser.StateManager)
  this.world;     //  the game world (Phaser.World)
  this.physics;   //  the physics manager (Phaser.Physics)
};
所有这些属性都易于访问,因此您可以在状态内的任何位置使用它们。这应该可以正常工作:

MyGame.Game = function () {
};

第一次创建组时,必须这样声明:

this.SpritesPlatform = this.game.add.physicsGroup();
无论何时,只要您想引用此组,都可以使用
console.log(this.spritesformat)

编辑:

你实际上不必做那样的事

MyGame.Game = function (game) {
  this.game;      //  a reference to the currently running game (Phaser.Game)
  this.add;       //  used to add sprites, text, groups, etc (Phaser.GameObjectFactory)
  this.load;      //  for preloading assets (Phaser.Loader)
  this.stage;     //  the game stage (Phaser.Stage)
  this.state;     //  the state manager (Phaser.StateManager)
  this.world;     //  the game world (Phaser.World)
  this.physics;   //  the physics manager (Phaser.Physics)
};
所有这些属性都易于访问,因此您可以在状态内的任何位置使用它们。这应该可以正常工作:

MyGame.Game = function () {
};

你从来没有真正定义过
this.game
。在构造函数中尝试:
this.game=game
你从来没有真正定义过
this.game
。在构造函数中尝试:
this.game=game
谢谢你的回答,但这并不能解决这个bug,我的意思是当我把它放到this.spritesformplatform时,代码没有运行,并给出了me同样的错误,即使我没有在update()中包含给出错误的那一行,我是否遗漏了其他内容?我得到了这个错误:未捕获引用错误:未定义SpritesPlatform,在这一行中:a=SpritesPlatform.create(0,150,'sprite');最后我通过在任何地方添加“this”来修复它“精灵平台"已使用…您是否已将
SpritesPlatform…
更改为
此。SpritesPlatform
无处不在?查看我的意思编辑:好的,很好!感谢您回答我,但这并不能解决问题,我的意思是,当我放置此文件时。SpritesPlatform,代码不会运行,并且会给我相同的错误,即使我没有将该行包含在upd中ate()给了我一个错误,我是否遗漏了其他东西请??我得到了这个错误:未捕获引用错误:未定义SpritesPlatform,在这行中:a=SpritesPlatform.create(0,150,'sprite');最后我通过在“SpritesPlatform”的任何地方添加“this”来修复它已使用…您是否已将<代码>SpritesPlatform…
更改为<代码>此。SpritesPlatform无处不在?查看我的意思编辑:好的,很好!