没有 FlxG.collide 是否有另一种检查碰撞的方法?

Is there another way to checking collision without FlxG.collide?

我正在使用 Haxe 和 HaxeFlixel 游戏引擎制作游戏,并且正在实现碰撞。

我在 HaxeFlixel cheat sheet:

中找到了检查冲突的方法
FlxG.overlap(ObjectOrGroup1, ObjectOrGroup2, myCallback);

private function myCallback(Object1:FlxObject, Object2:FlxObject):Void
{
}

但是我不喜欢这种风格,因为回调和函数调用是分开的。我更喜欢这个:

FlxG.overlap(ObjectOrGroup1, ObjectOrgroup2, function() {
    //do something
});

我在JavaScript看到过这种风格,但不知道具体是什么。这在 Haxe 中可行吗?

我需要这样的代码:

if (FlxG.collide(Object1, Object2)) {
    //do something
}

它必须 return 值(truefalse)并由 if 语句处理。

您的 匿名函数 的代码片段几乎是正确的,但是 FlxG.overlap() 的回调函数需要两个参数(发生碰撞的对象)。试试这个:

FlxG.overlap(ObjectOrGroup1, ObjectOrGroup2, function(object1:FlxObject, object2:FlxObject) {
    // do something with object1 and object2
});