Эта строка выглядит не совсем правильно:
var nBoxMaxX:Number = box1.sprite.y - box1.sprite.height / 2;
Возможно, вы имели в виду следующее:
var nBoxMaxX:Number = box1.sprite.x + box1.sprite.width / 2;
Эта строка не будет компилироваться:
if (nBoxMaxX, 2 > nCirMinX))
Редактировать:
Вот функция, которая поможет вам правильно определить AABB <-> Круговое столкновение.Это не полное решение, но вы можете объединить его с расчетами, которые у вас есть для минимальных и максимальных значений AABB, должны быть тривиальными:
private function collideAABBandCircle(c : Circle, aabb:AABB) : Boolean {
var sqDist : Number = sqDist(c.centerPoint, aabb);
return sqDist <= c.radius * c.radius:
}
private function sqDist(p : Point, aabb:AABB) : Number {
/* CALCULATE min and max values of aabb bounds */
var sqDist : Number = 0.0;
if(p.x < minX) {
sqDist += (minX - p.x) * (minX - p.x);
}
if(p.x > maxX) {
sqDist += (p.x - maxX) * (p.x - maxX);
}
if(p.y < minY) {
sqDist += (minY - p.y) * (minY - p.y);
}
if(p.y > maxY) {
sqDist += (p.y - maxY) * (p.y - maxY);
}
return sqDist;
}