Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.03.2011, 15:34
MyDuty вне форума Посмотреть профиль Отправить личное сообщение для MyDuty Найти все сообщения от MyDuty
  № 1  
Ответить с цитированием
MyDuty
 
Аватар для MyDuty

Регистрация: Mar 2011
Сообщений: 59
По умолчанию координаты соприкосновения

здрасте, это снова со своими тупыми вопросами...
Как найти точку соприкосновения двох мувиклипов. Если хиттест возвращает логическое значение, а мне нужны координаты...
Наперед спасибо!

Старый 30.03.2011, 15:40
Haiat вне форума Посмотреть профиль Отправить личное сообщение для Haiat Найти все сообщения от Haiat
  № 2  
Ответить с цитированием
Haiat
[+6 09.06.11]
 
Аватар для Haiat

Регистрация: May 2007
Сообщений: 721
а мувиклипы какой формы?

Старый 31.03.2011, 01:50
MyDuty вне форума Посмотреть профиль Отправить личное сообщение для MyDuty Найти все сообщения от MyDuty
  № 3  
Ответить с цитированием
MyDuty
 
Аватар для MyDuty

Регистрация: Mar 2011
Сообщений: 59
в том то и дело, что разные и непредсказуемые.
Если бы кружки или квадрати, то было бы всё просто: есть центр, от него и считаеш(тогда и хиттест не надо)
а нет ли какого-нибудь оператора, чтоб сразу возвращал координаты?

Старый 31.03.2011, 01:54
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 4  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
Код AS1/AS2:
if (hitTest(mc))
{
xkor = mc._x;
ykor = mc._y;
}

Старый 31.03.2011, 09:29
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 5  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Есть вариант один.

Алгоритм такой:
1. Определяете столкновение с помощью hitTest(). Если столкновение есть, то переходите на следующий шаг.

2. Создаете две битмапы для обоих объектов, отрисовываете эти объекты с помощью BitmapData.draw()

3. Меняете битмапдаты с помощью ColorMatrixFilter так, чтобы их изображения были, например, красного цвета. По-сути, просто заливкой, красная форма и прозрачный фон.

4. Создаете новую битмапу, куда врисовываете первые две по координатам объектов, при этом используя blendMode (какой точно — не помню).

5. Если объекты пересекаются не только габаритно, но и геометрически, то после наложения их битмап друг на друга с использованием blendMode в результирующей битмапе будут черные пиксели.

6. С помощью BitmapData.getColorBoundsRect() и поиском черных пикселей вы получите объект Rectangle со значениями области пересечения. С точностью до одного пикселя (я имею в виду, что объект на один пиксель наехал на другой) скорее всего получить не получится — обновление по кадрам в секунду — это дискретная операция. Потому, что, если вы двигаете объект на 10 пикселей за один фрэйм, то он пересечется с другим на один пиксель с вероятностью 1/10.

Возможно позже покажу пример.
__________________
hauts.ru

Старый 31.03.2011, 10:09
Haiat вне форума Посмотреть профиль Отправить личное сообщение для Haiat Найти все сообщения от Haiat
  № 6  
Ответить с цитированием
Haiat
[+6 09.06.11]
 
Аватар для Haiat

Регистрация: May 2007
Сообщений: 721
тут где то ссылка была на урок со столкновениями. там по моему 2 прямоугольника можно было двигать, и он кружками отмечал все точки пересечения (от 1 до 8)

Старый 31.03.2011, 10:52
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 7  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Прямоугольники не по теме, написано же — произвольной формы
__________________
hauts.ru

Старый 31.03.2011, 11:19
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 8  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Вот, смотрите пример. BitmapIntersection_test.zip

С мувиклипами, у которых есть масштаб и вращение разобраться не успел. Там сложности с матрицами получаются, сходу не сделаю.
__________________
hauts.ru

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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