FlxG.collide 当 x>648 时不工作

FlxG.collide not working when x>648

所以我尝试使用 HaxeFlixel 创建平台游戏,但我 运行 遇到了一个问题:在 FlxSprite 对象的 x 值超过 648 后,FlxG.collide 似乎没有工作。 Here 是问题的动图。如您所见,当玩家的 x < 648 时它工作正常,但当它变得更大时 FlxG.collision 停止工作。

关卡由扩展 FlxSprite 的 class Wall 的对象组成,唯一的区别是它的构造函数加载墙图形并设置其 immovable 属性 到 trueFlxG.collide 被调用,第一个参数是 player,第二个参数是 FlxGroup(包含墙)。我不确定这是否重要,但 FlxStatesuper.updateFlxG.collide.

之前被调用

好的,所以我查看了 HaxeFlixel 源代码(特别是 FlxG.overlap 私有函数(第 363 行)),我发现它只检查 worldBounds FlxRect。在我知道之后,我所要做的就是设置那个矩形的边界,这可以用 FlxG.worldBounds.set(?X:Float = 0, ?Y:Float = 0, ?Width:Float = 0, ?Height:Float = 0).

来完成