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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Apr 2002
Адрес: Saint-Petersburg
Сообщений: 13
Отправить сообщение для Nikolas с помощью AIM Отправить сообщение для Nikolas с помощью Yahoo
По умолчанию hitTest двух клипов с изогнутыми формами

Подскажите, как просчитать hitTest двух таких клипов, не по рамке а по контуру. Форма может быть любая (блин).
__________________
WPM
flash developer
http://www.wpm.ru

Старый 19.02.2003, 22:17
Zirgz вне форума Посмотреть профиль Отправить личное сообщение для Zirgz Посетить домашнюю страницу Zirgz Найти все сообщения от Zirgz
  № 2  
Zirgz

Регистрация: Dec 2001
Адрес: Latvia, Riga
Сообщений: 94
da hitTest i tak eta delajet bez njekakih ulovok:

Цитата:
myMovieClip.hitTest(target )

target The target path of the hit area that may intersect or overlap with the instance specified by MovieClip. The target usually represents a button or text-entry field.
help chitatj nada!

Старый 20.02.2003, 05:45
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 3  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
По умолчанию lame lame lame

Цитата:
da hitTest i tak eta delajet bez njekakih ulovok:
Ты разницу между "bounding box" и "shape" улавливаешь? Так вот, Nicolas спрашивает именно про "shape" – контур.
Оказывается, это тебе надо читать хелп. Где явно написано, что предложенное тобой myMovieClip.hitTest(target), - Evaluates THE BOUNDING BOXES (выделено мной) of the target and specified instance, and returns true if they overlap or intersect at any point.
И попробуй-ка сделать вот такой примерчик, используя myMovieClip.hitTest(target)
Сомневаюсь, что у тебя получится " bez njekakih ulovok ".
Вложения
Тип файла: zip ht.zip (2.7 Кб, 132 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 20.02.2003, 14:06
Zirgz вне форума Посмотреть профиль Отправить личное сообщение для Zirgz Посетить домашнюю страницу Zirgz Найти все сообщения от Zirgz
  № 4  
Zirgz

Регистрация: Dec 2001
Адрес: Latvia, Riga
Сообщений: 94
nu da vot sdelal, bez njekakih ulovok, toka nje target a _x, _y, shape flag

ogovorilsja, sore, no ulovok njekakih njenada! k tomuzhe eta napisana v helpe !
Вложения
Тип файла: zip hittest.zip (3.4 Кб, 117 просмотров)

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

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Не-е-ет, примерчик-то твой хилый. И абсолютно не равнозначен тому, что я выложил. Сразу видно, что он сделан с hitTest(x, y, shapeFlag). А это использование подходит только для довольно маленьких объектов, размерами которых можно пренебречь, а брать только координаты их центров. Поэтому в твоем примере, как это видно на картинке, шар может почти полностью лежать на фигуре, но hitTest регистрироваться не будет.
Но, я это все тебе говорю не для того, чтобы как-то поглумиться над тобой, а только для того, чтобы ты не пытался относиться к вопросам других с пренебрежением и высокомерием. Не надо так резко отправлять других к хелпу.
Не надо таких комментариев "lame lame". Даже ты, зная английский, делаешь такие ошибки. А что говорить о тех, кто не знает английского? Вот форум для того и существует, чтобы одни могли задавать любые вопросы, а другие - делиться опытом и маленькими хитростями.
Извини, если обидел. Но и ты постарайся не обижать других.
Изображения
 
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 20.02.2003, 23:50
Zirgz вне форума Посмотреть профиль Отправить личное сообщение для Zirgz Посетить домашнюю страницу Zirgz Найти все сообщения от Zirgz
  № 6  
Zirgz

Регистрация: Dec 2001
Адрес: Latvia, Riga
Сообщений: 94
nu ladno, uprjok k mestu vspeshke upustil

a kak tebe etat fail?


no vopsheto ja etim njeanilasja do etava, kakbi njebilo nadabnastji, no njemnoshko prishlosj podumatj...

a ja vedj tebja zadel za zhivoje vsjotaki, izvinjajusj

no tvojo reshenije chisto bilo na mnoga huzhe a nje alternativnij variant.
Вложения
Тип файла: zip hittest.zip (5.0 Кб, 122 просмотров)


Последний раз редактировалось Zirgz; 20.02.2003 в 23:56.
Старый 21.02.2003, 04:23
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 7  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Вот ты приаттачиваешь файл, а ты сам его проверил? Мне кажется, - нет. Я даже уверен, что нет. Потому что у тебя startDrag без "true", и поэтому ты не можешь нормально двигать клип. А если бы проверил, то обнаружил бы то, что можно увидеть на приатаченных картинках.
Но то, что ты обратился к getBounds, говорит, что ты на правильном пути. Но, опять-таки, всегда стоит подумать, подходит ли данный способ для решения данной задачи. И вот тут можно ответить и на твое утверждение, что предложенный тобой способ (в другом топике) – намного лучше моего. Во-первых, я предложил только ОДИН из способов, специально оговорив это в самом начале. Во-вторых, для каждой задачи – свой способ. Я до сих пор думаю, что тот, который я предложил – более универсальный: он позволяет более гибко подойти к удалению копий клипов. Например, если я хочу удалить клипы только тогда, когда их количество четно какому-то числу, или если я хочу удалить какую-то определенную конфигурацию клипов. В общем, я хочу еще раз повторить: для каждой задачи – свой способ. Хорош ли предложенный тобой? – безусловно! Для своих задач.
Но зацепило меня за живое не то, чей предложенный способ лучше или хуже, а твое ничем необоснованное высокомерие и слово "lame", трижды повторенное.
Я, по жизни – добрейшей души человек, но, сталкиваясь с хамством и грубостью, становлюсь сам не свой. Даже друзья это хорошо усвоили и не пытаются меня в таких случаях успокаивать, а просто, сразу вызывают скорую помощь для пострадавшего. Шучу, конечно. Но в каждой шутке - ....
Поэтому так и отнесся к твоим постам. Хотя против тебя лично нечего не имею. Я отлично помню, что мы с тобой нормально общались, когда тестили твой austrapak. Надеюсь, и в дальнейшем будем общаться нормально.

В нашей полемике мы забыли про автора вопроса, Nicolas(a).
Давай – все же – ответим ему.
Nicolas, смотря какую задачу ты решаешь. Если это достаточно большие объекты, и нужно точно отследить их столкновение, - есть еще один нетривиальный способ: разместить по контуру одного из них точечные клипы-маяки, и отслеживать столкновение с ними.
Вложения
Тип файла: zip screen.zip (16.9 Кб, 121 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

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

Регистрация: Apr 2002
Адрес: Saint-Petersburg
Сообщений: 13
Отправить сообщение для Nikolas с помощью AIM Отправить сообщение для Nikolas с помощью Yahoo
Здравствуйте, Sergwizard

Спасибо за Вашу защиту от нападок нашего "лесного брата". За время развития событий я сумел сам справиться с поставленной задачей.
Ваш совет по поводу "клипов-маяков", приходил мне в голову, но объектов очень много и в каждый вставлять "маяки", очень трудоемкий процесс.
Задача решилась очень интересным способом:
1. При загрузке МС в "container" мы прощитываем "shape", с шагом 2 пикселя, и заносим объекты со свойствами (х и у) в массив для данного МС.
Код:
container = ссылка на нужный контейнер.
clipBounds = МС.getBounds(container);
masName = (_level0[container._name+"_ht"]=[]);
for (j=clipBounds.xMin;j<=clipBounds.xMax;j+=2) {
	for (k=clipBounds.yMin;k<=clipBounds.yMax;k+=2) {
		if (МС.hitTest(container._x+j,container._y+k,true)) {
			masName.push({x:j,y:k})
		}
	}
}
Мы получаем на каждый МС свой массив с образом шейпа. Затем нам уже не составляет труда находить области совпадения двух МС на сцене.
2. При совпадении "bounding box" двух МС, мы включаем проверку совпадений их шейпов (по их массивам, до первого совпадения)
Код:
var HTmass = eval(container1+"_ht")
var HTUrl = eval(container1+".МС")
for (m=0;m<=HTmass.length-1;m++) {
	var loc = HTUrl.localToGlobal(HTmass[m])
	if (container2.hitTest(loc.x,loc.y,true)) {
		// В момент совпадения выполняем что захотим.
		break;
	}
}
* Использование localToGlobal обусловлено тем, что эти МС вложенные и в процессе, они могут вращаться, скалиться, и т.д. Но чтобы localToGlobal не портил входяший объект, мы его переопределяем:
Код:
MovieClip.prototype.lg = MovieClip.prototype.localToGlobal;
MovieClip.prototype.localToGlobal = function(coord) {
	var temp = {x:coord.x, y:coord.y};
	this.lg(temp);
	return temp;
};
Всем спасибо.
__________________
WPM
flash developer
http://www.wpm.ru


Последний раз редактировалось Nikolas; 21.02.2003 в 19:25.
Старый 21.02.2003, 19:38
SPV вне форума Посмотреть профиль Отправить личное сообщение для SPV Найти все сообщения от SPV
  № 9  
SPV
 
Аватар для SPV

Регистрация: Jan 2000
Адрес: St-Petersburg
Сообщений: 1,229
Отправить сообщение для SPV с помощью ICQ
Все свободны
__________________
Two beer or not two beer?...

Старый 21.02.2003, 19:49
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 10  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
По умолчанию видишь суслика ?.. и я нет. а он есть.

теперь-то суслика видят все =)

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

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

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


 


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


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