|
|
|||||
Регистрация: Sep 2010
Сообщений: 49
|
BitmapData hittest при вращении
Добрый день.Долго искал всети,столкновение 2ух обектов неправельной формы при вращении.Вобщем нашел кое что.Выдрал от туда часть кода.Вроде как все получилось и работет.Но проблема такая,в данном случае крест врашается вокруг левой верхней точки.Мне же надобы,чтоб он вращался по центру.И если ставлю регистрацию по центру,то вся точность пропадает.Подскажите плиз как мне это сделать.Вот код:
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); С уважением Андрей. |
|
|||||
__________________
http://artem-lobachenkov.ru/ |
|
|||||
Регистрация: Sep 2010
Сообщений: 49
|
Art_133,Огромное спасибо.Все отлично.
Добавлено через 1 час 29 минут Сорру.Можно еще вопросик.Если я рисую более большой обьект например ту же PolyStar скажем 180х180.Уже hittest совсем не точен.В чем причина?Спасибо. |
|
|||||
Архив с большим объектом прикрепите.
UPD: В моём примере с большим плюсом всё ок. Вы точно в центре клипа-контейнера размещаете его?
__________________
http://artem-lobachenkov.ru/ Последний раз редактировалось Art_133; 04.07.2012 в 12:39. |
|
|||||
Регистрация: Sep 2010
Сообщений: 49
|
Плюс я как раз оставляю таким же а меняю второй обьект.Ваш же пример вкладываю.Кстати еслю плюс большой и второй обьект большой то все ок,если же плюс оставляем маленьким,а второй обьект увеличиваем то уже нет.
|
Часовой пояс GMT +4, время: 15:31. |
|
« Предыдущая тема | Следующая тема » |
Теги |
bitmapdata , hittest , matrix |
|
|