因此,我试图使用HaxeFlixel创建一个平台游戏,但遇到一个问题:在FlxSprite对象的x
值通过648之后,FlxG.collide
似乎根本不起作用。 Here是问题的gif。如您所见,当播放器的x
为FlxG.collision更大时,Wall
停止工作。
该级别由扩展了FlxSprite
的类immovable
的对象组成,唯一的区别是它的构造函数加载了墙图并将其true
属性设置为FlxG.collide
。调用player
时,将FlxGroup
作为第一个参数,将FlxState
(包含墙)作为第二个参数。我不确定这是否重要,但是super.update
的FlxG.collide
在之前被调用。
最佳答案
好的,所以我看了一下HaxeFlixel源代码(特别是FlxG.overlap
私有函数(第363行)),我发现它仅检查worldBounds
FlxRect
中的对象。在我知道这一点之后,我所要做的就是设置该rect的边界,可以使用FlxG.worldBounds.set(?X:Float = 0, ?Y:Float = 0, ?Width:Float = 0, ?Height:Float = 0)
来完成。