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

时间:2018-02-19 11:07:13

标签: haxe haxeflixel

我正在与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
}

必须返回值(truefalse)并由if语句处理。

1 个答案:

答案 0 :(得分:3)

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

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