Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вычислить пересечение двух спрайтов, в которых лежат битмапы с прозрачными областями (http://www.flasher.ru/forum/showthread.php?t=149204)

mikhailk 20.01.2011 19:38

Вычислить пересечение двух спрайтов, в которых лежат битмапы с прозрачными областями
 
Сейчас проверяю пересечение спрайтов hitTestObject'ом, но, поскольку в спрайтах лежат битмапы достаточно причудливой формы, периодически случается авария - hitTestObject дает true, хотя визуально объекты не пересекаются.

Нужно решение в общем виде, поскольку в каждом из двух проверяемых спрайтов может лежать самый разный контент. Несколько битмапдат, мувики и т.д.

Первое, что приходит в голову - проверять hitTestObject'ом, а уже если он дал true, проводить уточняющую проверку, катнув их в битмапдату и там уже hitTest'ом, но может есть способ проще?

gloomyBrain 20.01.2011 22:00

По мне так и этот способ не плох. Единственно - в BitmapDat'у я бы рисовал только те части объектов, которые пересекаются (можно получить по описывающим прямоугольникам самих объектов)

JackFromChaos 20.01.2011 22:24

2mikhailk: Так и делаю, как вы описали...

mikhailk 20.01.2011 23:44

ок.

там утечки памяти, кстати, не получается?
подозреваю, надо чистить битмапдаты сразу после использования

Bgg 20.01.2011 23:58

http://www.mosessupposes.com/utiliti...ePNG_demo.html

Psycho Tiger 20.01.2011 23:59

Цитата:

там утечки памяти, кстати, не получается?
подозреваю, надо чистить битмапдаты сразу после использования
Чистятся с GC, но есть возможность просто удалить их сразу.

mikhailk 21.01.2011 00:14

ну да, dispose


Определить прозрачность под указателем мыши проблем нет.
Это немного из другой оперы.


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

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