【问题标题】:FlxG.collide not working when x>648当 x>648 时,FlxG.collide 不起作用
【发布时间】:2021-09-12 20:56:25
【问题描述】:

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

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

【问题讨论】:

  • 您可能需要将Flxg.worldBounds 更改为更大的值,才能按照this issue 所说的那样进行碰撞

标签: haxe haxeflixel


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多