gpt4 book ai didi

javascript - Phaser : this. 游戏在更新函数中未定义

转载 作者:行者123 更新时间:2023-12-03 10:05:47 25 4
gpt4 key购买 nike

晚上好,很抱歉再次询问,但我需要在明天上学之前完成此操作。基本上,当我尝试在更新函数中访问 this.game 变量时,它说它未定义,具体来说,我得到了这个; “未捕获的类型错误:无法读取未定义的属性‘状态’”。在我的更新功能中我有这个:

create: function() {
[...]
map.setCollisionByExclusion([], true, doorLayer);
[...]
}

当我尝试在碰撞 Action 的更新函数中访问 this.game 时,出现上述错误。这是代码;

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.physicals.arcade.collide(玩家,doorLayer,函数(){
如果(有项目){
this.game.state.start('走廊');//这是我收到错误的地方
}
});

请注意,内部 this 指的是您传递的匿名函数,它显然没有名为 game 的成员。

理想情况下,将this重命名为其他名称,然后使用它。现在,您可以在传递的匿名函数中使用 myself 变量并访问 myself 的属性。

var myself = this;

关于javascript - Phaser : this. 游戏在更新函数中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com