没有 FlxG.collide 是否有另一种检查碰撞的方法?
Is there another way to checking collision without FlxG.collide?
我正在使用 Haxe 和 HaxeFlixel 游戏引擎制作游戏,并且正在实现碰撞。
中找到了检查冲突的方法
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 值(true
或 false
)并由 if 语句处理。
您的 匿名函数 的代码片段几乎是正确的,但是 FlxG.overlap()
的回调函数需要两个参数(发生碰撞的对象)。试试这个:
FlxG.overlap(ObjectOrGroup1, ObjectOrGroup2, function(object1:FlxObject, object2:FlxObject) {
// do something with object1 and object2
});
我正在使用 Haxe 和 HaxeFlixel 游戏引擎制作游戏,并且正在实现碰撞。
中找到了检查冲突的方法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 值(true
或 false
)并由 if 语句处理。
您的 匿名函数 的代码片段几乎是正确的,但是 FlxG.overlap()
的回调函数需要两个参数(发生碰撞的对象)。试试这个:
FlxG.overlap(ObjectOrGroup1, ObjectOrGroup2, function(object1:FlxObject, object2:FlxObject) {
// do something with object1 and object2
});