![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 98
|
Как проверить факт пересечения 2-х клипов с учётом формы клипов?
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
BitmapData#hitTest() в помощь.
|
|
|||||
|
Или математикой.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 98
|
А как математикой?
|
|
|||||
|
Например, областями Воронного. Гуглите )
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Можно и методом Монте-Карло
![]()
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 98
|
Вот такой код нашёл в книге Гурского , но он не работает почему то.
MovieClip.prototype.myHitTest = function(clip:MovieClip, n:Number):Boolean { if (n == undefined) { var n:Number = 2; } var coord1:Object = this.getBounds(_root); var coord2:Object = clip.getBounds(_root); var squarel:Number = Math.abs((coord1.xMax - coord1.xMin) * (coord1.yMax - coord1.yMin)); var square2:Number = Math.abs((coord2.xMax - coord2.xMin) * (coord2.yMax - coord2.yMin)); var coord:Object = squarel > square2 ? coord2 : coord1; for (var i = coord.xMin + n / 2; i <= coord, xMath; i += n) { for (var j = coord.yMin + n / 2; j <= coord, xMath; j += n) { if (((clip.hitTest(i, j, true) ? 1 : 0) + (this.hitTest(i, j, true) ? 1 : 0)) == 2) { return true; } } return false; } }; Последний раз редактировалось udaaff; 29.10.2010 в 20:53. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|