Я потратил на это весь день, пришло время попросить вас о помощи:)
Я пытаюсь обнаружить столкновение двух экранных объектов, оба из которых имеют центральную точку регистрации.
На моей сцене я зафиксировал элементы, которые при добавлении на сцену помещаются в массив, называемый "zoneUsed".Все displayObject в моем проекте имеют точку регистрации в центре.
Моя цель состоит в том, чтобы щелкнуть по сцене и проверить, могу ли я создать круг в щелчковых координатах.Мой план состоял в том, чтобы создать Sprite для нового объекта, выполнить цикл для массива zoneUsed и проверить, достаточно ли нового спрайта для жизни.
Вот мой код:
private function checkSpaceForNewMarker (markerToCheck:Sprite):Boolean {
var isPossible:Boolean = true;
var bmdataToCheck:BitmapData = new BitmapData (markerToCheck.width, markerToCheck.height, true, 0);
var m:Matrix = new Matrix ();
m.tx = markerToCheck.width/2;
m.ty = markerToCheck.height/2;
bmdataToCheck.draw (markerToCheck, m);
for (var i:int = 0; i<zoneUsed.length; i++) {
trace ("*** CHECKING ****");
var bmddataOnTheTable:BitmapData = new BitmapData (zoneUsed[i].width, zoneUsed[i].height, true, 0);
var tableMatrix:Matrix = new Matrix ();
tableMatrix.tx = zoneUsed[i].width/2;
tableMatrix.ty = zoneUsed[i].height/2;
bmddataOnTheTable.draw(zoneUsed[i], tableMatrix);
if (bmdataToCheck.hitTest(new Point(markerToCheck.x, markerToCheck.y), 255, bmddataOnTheTable, new Point (zoneUsed[i].x, zoneUsed[i].y), 255)) {
trace ("COLLISION");
isPossible = false;
} else {
trace ("NO COLLISION");
isPossible = true;
}
}
return isPossible;
}
.... Но сейчас результаты странные.В зависимости от зон мои следы работают или нет.Что я делаю не так?