因此,我试图使用HaxeFlixel创建一个平台游戏,但遇到一个问题:在FlxSprite对象的x值通过648之后,FlxG.collide似乎根本不起作用。 Here是问题的gif。如您所见,当播放器的x为FlxG.collision更大时,Wall停止工作。

该级别由扩展了FlxSprite的类immovable的对象组成,唯一的区别是它的构造函数加载了墙图并将其true属性设置为FlxG.collide。调用player时,将FlxGroup作为第一个参数,将FlxState(包含墙)作为第二个参数。我不确定这是否重要,但是super.updateFlxG.collide在之前被调用。

最佳答案

好的,所以我看了一下HaxeFlixel源代码(特别是FlxG.overlap私有函数(第363行)),我发现它仅检查worldBounds FlxRect中的对象。在我知道这一点之后,我所要做的就是设置该rect的边界,可以使用FlxG.worldBounds.set(?X:Float = 0, ?Y:Float = 0, ?Width:Float = 0, ?Height:Float = 0)来完成。

10-04 13:22