晚上好, 很抱歉再次询问,但明天我需要完成这项工作。基本上,当我尝试在更新函数中访问this.game变量时,它表示它是未定义的,具体来说,我得到了这个; "未捕获的TypeError:无法读取属性' state'未定义"。 在我的更新功能中,我有这个:
update: function() {
[...]
this.game.physics.arcade.collide(player, doorLayer, function() {
if (hasItem) {
this.game.state.start('Hallway'); //This is where I get the error
}
});
[...]
}
当我尝试在碰撞操作的更新函数中访问this.game时,我收到上面提到的错误。 这是代码;
vp2.setCurrentItem(selectedItemIndex,false);
vp1.setCurrentItem(1,true);
感谢您的时间。
答案 0 :(得分:1)
this.game.physics.arcade.collide(player, doorLayer, function() {
if (hasItem) {
this.game.state.start('Hallway'); //This is where I get the error
}
});
请注意,内部this
引用您传递的匿名函数,该函数显然没有名为game
的成员。
理想情况下,将this
重命名为其他内容然后再使用它。
现在,您可以在传递的匿名函数中使用myself
变量并访问myself
的属性。
即
var myself = this;