Добрый день.Долго искал всети,столкновение 2ух обектов неправельной формы при вращении.Вобщем нашел кое что.Выдрал от туда часть кода.Вроде как все получилось и работет.Но проблема такая,в данном случае крест врашается вокруг левой верхней точки.Мне же надобы,чтоб он вращался по центру.И если ставлю регистрацию по центру,то вся точность пропадает.Подскажите плиз как мне это сделать.Вот код:
Код AS3:
var _onePoint:Point;
var _twoPoint:Point;
var plusrs:Rectangle;
var starrs:Rectangle;
var bmp1:BitmapData;
var bmp2:BitmapData;
var _oneOffset:Matrix;
var _twoOffset:Matrix;
function hittest(e:Event) {
plus.x= mouseX;
plus.y = mouseY;
plus.rotation++;
plusrs = plus.getBounds(plus);
_oneOffset = plus.transform.matrix;
_oneOffset.tx = plus.x - star.x;
_oneOffset.ty = plus.y - star.y;
bmp1 = new BitmapData(plusrs.width, plusrs.height, true, 0);
bmp1.fillRect(bmp1.rect, 0);
bmp1.draw(plus, _oneOffset);
starrs = star.getBounds(star);
bmp2 = new BitmapData(starrs.width, starrs.height, true, 0);
_twoOffset = star.transform.matrix;
_twoOffset.tx = star.x - star.x;
_twoOffset.ty = star.y - star.y;
bmp2.fillRect(bmp2.rect, 0);
bmp2.draw(star, _twoOffset);
_onePoint = new Point(plusrs.x, plusrs.y);
_twoPoint = new Point(starrs.x, starrs.y);
if(bmp1.hitTest(_onePoint, 255, bmp2, _twoPoint, 255))
{
star.filters = [new GlowFilter()];
plus.filters = [new GlowFilter()];
}
else
{
star.filters = [];
plus.filters = [];
}
}
stage.addEventListener(Event.ENTER_FRAME, hittest);
На всяк случай прикрепляю fla.
С уважением Андрей.