因此,我尝试使用 HaxeFlixel 创建一款平台游戏,但遇到了一个问题:在 FlxSprite 对象的 x
值传递到 648 后,FlxG.collide
却没有传递似乎根本不起作用。 Here是问题的 gif。正如您所看到的,当玩家的 x
小于 648 时,它可以正常工作,但当它变得更大时,FlxG.collision
就会停止工作。
关卡由Wall
类的对象组成,该类扩展了FlxSprite
,唯一的区别是它的构造函数加载墙壁图形并设置其不可移动
属性设置为 true
。 FlxG.collide
正在被调用,player
作为第一个参数,FlxGroup
(包含墙壁)作为第二个参数。我不确定这是否重要,但 FlxState
的 super.update
是在 FlxG.collide
之前调用的。
最佳答案
好吧,我查看了 HaxeFlixel 源代码(特别是 FlxG.overlap
私有(private)函数(第 363 行)),我发现它只检查 worldBounds
内的对象。 FlxRect
。在我知道这一点之后,我所要做的就是设置该矩形的边界,这可以通过 FlxG.worldBounds.set(?X:Float = 0, ?Y:Float = 0, ?Width:Float = 0, ?Height:Float = 0)
来完成。 .
关于haxe - 当 x>648 时 FlxG.collide 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43792751/