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

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

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

Регистрация: Sep 2011
Адрес: Планета Земля
Сообщений: 42
Question Функция по пересечению MovieClip-ов

Возникла еще одна проблема. Есть два MovieClip-ы (mc1 и mc2), когда они пересекаются выполнятся функция, а когда нет то функция, естественно, выполнятся не должна.
Но она выполняется)
Помогите.

Код AS3:
stop();
 
addEventListener(Event.ENTER_FRAME, frameList);
function frameList(e:Event):void{
 
    mc1.hitTestObject(mc2);
    trace(mc1.hitTestObject(mc2));
    if(mc1.hitTestObject(mc2) == true){
		play();
	}
}
__________________
мечта сбываться если она становиться целью...


Последний раз редактировалось hunterr; 30.10.2011 в 21:25.
Старый 30.10.2011, 22:27
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
hitTestObject проверяет на столкновение не обьекты, а их bounding box'ы.
Универсальной функции, проверяющей на столкновение именно обьекты - нет.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

Регистрация: Sep 2011
Адрес: Планета Земля
Сообщений: 42
Тогда как лучше сделать, чтобы все работало?
__________________
мечта сбываться если она становиться целью...

Старый 30.10.2011, 23:38
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ещё раз - универсальной функции нет. Универсальная, наверное, это попиксельное сравнение (а перед тем растеризация) - это долго.
Можно выделить несколько точек для одного обьекта, таких, что если обьекты пересекаются, то наверняка эти точки на другом обьекте, проверять при помощи hitTestPoint. Можно представить обьекты в виде треугольников или других примитивов и проверять в box2d (или ещё как) их на столкновение.
Короче надо смотреть, что за обьекты, какая нужна точность и др.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 30.10.2011, 23:40
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 5  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Сделать массив hitTestPoint'ов, расставить их по периметру картинки которая проверяется на столкновения, и проверять этот массив на столкновение с вашим мувиклипом. Примеры по моему в инете были.

Старый 31.10.2011, 00:57
hunterr вне форума Посмотреть профиль Отправить личное сообщение для hunterr Найти все сообщения от hunterr
  № 6  
Ответить с цитированием
hunterr
 
Аватар для hunterr

Регистрация: Sep 2011
Адрес: Планета Земля
Сообщений: 42
Ничего толкового в инете найти не могу. Может плохо ищу... Но все же может кто знает какой не будь пример, помогите, дайте ссилку. А я пока еще пороюсь.
__________________
мечта сбываться если она становиться целью...

Старый 31.10.2011, 10:08
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
http://noregret.org/tutor/n/
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 31.10.2011, 13:51
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 8  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Если памяти не жалко и объекты не большие, можно отрисовать один объект в битмапу одним цветом - второй другим и с блендом и найти в битмапе зону со смешанным цветом. Если эта зона есть - объекты пересеклись, если нету - не пересеклись.

Старый 31.10.2011, 23:13
hunterr вне форума Посмотреть профиль Отправить личное сообщение для hunterr Найти все сообщения от hunterr
  № 9  
Ответить с цитированием
hunterr
 
Аватар для hunterr

Регистрация: Sep 2011
Адрес: Планета Земля
Сообщений: 42
Наиболее заинтересовал способ который предложил crazyone.
Вот только можно чуть подробнее о том, как его реализовать? А то я слабо понял.
Заранее благодарен.

Немного уточню. У меня сразу же возникло два глупые вопросы:
1. Что такое битмапа?
2. Что такое блендер?
__________________
мечта сбываться если она становиться целью...


Последний раз редактировалось hunterr; 01.11.2011 в 01:40.
Старый 01.11.2011, 08:54
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 10  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Может, так.
Цитата:
if(mc1.hitTestObject(mc2)){
play();
}else{
removeEventListener(Event.ENTER_FRAME., frameList)
stop();
}
Цитата:
выполнятся функция, а когда нет то функция, естественно, выполнятся не должна.
Event.ENTER_FRAME
Функция выполнятся потому что ENTER_FRAME надо удалять.
removeEventListener(Event.ENTER_FRAME., frameList)
__________________
Книги и желание лучшие учителя.


Последний раз редактировалось Vektor; 01.11.2011 в 09:10.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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