Вот фрагмент кода, который я нашел в ActionScript 3 (https://snipplr.com/view/90435/pixel-perfect-collision-detection-as3/), который выглядит так, как будто он должен работать в OpenFL.
Haxe-версия кода может выглядеть следующим образом:
public function objectsHit (mc1:DisplayObject, mc2:DisplayObject):Bool {
var mc1bounds = mc1.getBounds (this);
var mc2bounds = mc2.getBounds (this);
var allintersections = (mc2bounds.intersection(mc1bounds));
for (xval in allintersections.x...(allintersections.x + allintersections.width)) {
for (yval in allintersections.y...(allintersections.y + allintersections.height)) {
if (mc2.hitTestPoint (xval, yval, true) && mc1.hitTestPoint (xval, yval, true)) {
return true;
}
}
}
return false;
}
Возможно также сначала использовать метод hitTestObject
, а затем - метод hitTestPoint
. Основная идея заключается в том, чтобы сначала выполнить обнаружение попадания в ограничивающую рамку, а затем выполнить основанное на точке столкновение (что обходится дороже), если вам нужно что-то более точное.