Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как проверить факт пересечения 2-х клипов с учётом формы клипов? (http://www.flasher.ru/forum/showthread.php?t=146122)

Andrei0077 29.10.2010 13:18

Как проверить факт пересечения 2-х клипов с учётом формы клипов?
 
Как проверить факт пересечения 2-х клипов с учётом формы клипов?

udaaff 29.10.2010 14:08

BitmapData#hitTest() в помощь.

Psycho Tiger 29.10.2010 15:49

Или математикой.

Andrei0077 29.10.2010 17:37

А как математикой?

Psycho Tiger 29.10.2010 17:42

Например, областями Воронного. Гуглите )

i.o. 29.10.2010 18:27

Можно и методом Монте-Карло ;)

Andrei0077 29.10.2010 20:39

Вот такой код нашёл в книге Гурского , но он не работает почему то.

Код AS1/AS2:

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:48

Для оформления своего кода надо использовать соответствующие теги и соблюдать индентацию.


Часовой пояс GMT +4, время: 01:48.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.