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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.12.2002, 17:38
  № 1  
Mad_Cat
Guest

Сообщений: n/a
Thumbs down HitTest & DropTarget...?

У меня, пожалуй, далеко не новый вопрос:
Как наилучшим образом реализовать проверку на столкновение? Я почитал то, что нашёл по поиску, но это меня лишь запутало в том, чем же лучше пользоваться.
И где можно найти описание этих дроптаргета и хиттеста: в АС словаре - нифига нету (или я не нашёл, по крайней мере).
Чуть не забыл, мне нужно просто для шариков (различного размера), которые создаются duplicateMC.

ЗЫ. за такую тему Max N Chubin_ точно нарисует палец вниз

Старый 26.12.2002, 18:58
Max N Chubin_ вне форума Посмотреть профиль Отправить личное сообщение для Max N Chubin_ Найти все сообщения от Max N Chubin_
  № 2  
Max N Chubin_
 
Аватар для Max N Chubin_

Регистрация: Nov 2001
Адрес: Moscow, Russia
Сообщений: 720
Отправить сообщение для Max N Chubin_ с помощью ICQ
Thumbs down любой каприз за ваши деньги!


Цитата:
И где можно найти описание этих дроптаргета и хиттеста
к Новому Году в рамках программы "Каждому слепому ребенку книжку в подарок" высылаю мануал по Action Script в формате книги PDF. Б Е С П Л А Т Н О!
вот тебе URL:
http://www.autotaganka.ru/asd.zip

с Новым Годом!

а вообще говоря выкладывай исходник с попытками и дед Мороз тебе мделает подарок
если ты был хорошим мальчиком!
__________________
Max.

Старый 26.12.2002, 20:05
  № 3  
Mad_Cat
Guest

Сообщений: n/a
По умолчанию Re: любой каприз за ваши деньги!

Спасибо, дядя кул программер!
А вот исходник я тебе не вышлю - CLASSIFIED (если знаешь, что это значит), так сказать...

Старый 26.12.2002, 20:09
  № 4  
Mad_Cat
Guest

Сообщений: n/a
Thumbs down btw

Можно было бы просто сказать, что это в MC есть, т.к. то, что ты мне прислал, к твоему сведению, ни чем не отличается от AS Dictionary!

Старый 26.12.2002, 20:22
Max N Chubin_ вне форума Посмотреть профиль Отправить личное сообщение для Max N Chubin_ Найти все сообщения от Max N Chubin_
  № 5  
Max N Chubin_
 
Аватар для Max N Chubin_

Регистрация: Nov 2001
Адрес: Moscow, Russia
Сообщений: 720
Отправить сообщение для Max N Chubin_ с помощью ICQ
Thumbs up ну вот...

1 - я тебе ничего не присылал. Я дал ссылку и сказал что это.
Цитата:
Спасибо, дядя кул программер! что ты мне прислал, к твоему сведению, ни чем не отличается от AS Dictionary!
2 - ура, он глянул в мануал!

а шо такое "CLASSIFIED" - понятия не имею!
может это када создание сайта начинается с написания формы для ввода пароля?
__________________
Max.

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

Регистрация: Jul 2001
Адрес: Москва
Сообщений: 3,088
Отправить сообщение для nagash с помощью ICQ
вот не поленился... (незнаю только зачем) открыл значится хелп который с флешем даётся... и что же мы там видим?
MovieClip.hitTest

Availability


Flash Player 5.

Usage


myMovieClip.hitTest(x, y, shapeFlag)
myMovieClip.hitTest(target)
Parameters


x The x coordinate of the hit area on the Stage.

y The y coordinate of the hit area on the Stage.

The x and y coordinates are defined in the global coordinate space.

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.

shapeFlag A Boolean value specifying whether to evaluate the entire shape of the specified instance (true), or just the bounding box (false). This parameter can only be specified if the hit area is identified using x and y coordinate parameters.

Returns


Nothing.

Description


Method; evaluates the instance specified by MovieClip to see if it overlaps or intersects with the hit area identified by the target or x and y coordinate parameters.

Usage 1: Compares the x and y coordinates to the shape or bounding box of the specified instance, according to the shapeFlag setting. If shapeFlag is set to true, only the area actually occupied by the instance on the Stage is evaluated, and if x and y overlap at any point, a value of true is returned. This is useful for determining if the movie clip is within a specified hit or hotspot area.

Usage 2: Evaluates the bounding boxes of the target and specified instance, and returns true if they overlap or intersect at any point.

Example


The following example uses hitTest with the x_mouse and y_mouse properties to determine whether the mouse is over the target's bounding box:

if (hitTest( _root._xmouse, _root._ymouse, false));
The following example uses hitTest to determine if the movie clip ball overlaps or intersects with the movie clip square:

if(_root.ball, hittest(_root.square)){
trace("ball intersects square");
}

а потом решил а почему бы ещё не посмотреть... и что же я там ещё нашёл?
MovieClip._droptarget

Availability


Flash Player 4.

Usage


myMovieClip._droptarget
Description


Property (read-only); returns the absolute path in slash syntax notation of the movie clip instance on which the MovieClip was dropped. The _droptarget property always returns a path that starts with a slash (/). To compare the _droptarget property of an instance to a reference, use the eval function to convert the returned value from slash syntax to a dot syntax reference.

Example


The following example evaluates the _droptarget property of the garbage movie clip instance and uses eval to convert it from slash syntax to a dot syntax reference. The garbage reference is then compared to the reference to the trash movie clip instance. If the two references are equivalent, the visibility of garbage is set to false. If they are not equivalent, the garbage instance is reset to its original position.

if (eval(garbage._droptarget) == _root.trash) {
garbage._visible = false;
} else {
garbage._x = x_pos;
garbage._y = y_pos;
}
The variables x_pos and y_pos are set on Frame 1 of the movie with the following script:

x_pos = garbage._x;
y_pos = garbage._y;


Последний раз редактировалось nagash; 26.12.2002 в 23:08.
Старый 26.12.2002, 23:24
Max N Chubin_ вне форума Посмотреть профиль Отправить личное сообщение для Max N Chubin_ Найти все сообщения от Max N Chubin_
  № 7  
Max N Chubin_
 
Аватар для Max N Chubin_

Регистрация: Nov 2001
Адрес: Moscow, Russia
Сообщений: 720
Отправить сообщение для Max N Chubin_ с помощью ICQ
Thumbs down короче...

в двух словах - _droptarget тут не к месту...
__________________
Max.

Старый 27.12.2002, 11:40
  № 8  
Mad_Cat
Guest

Сообщений: n/a
Это я уже понял, а что же тогда с глюками хиттеста, про которые вы тут как-то говорили? Что он последний дупликат не видит и четвёртый с конца?
И что лучше в моём случае (мне просто круги нужны):
1) Можно проверять на разность расстояния между центрами шаров и суммой их радиусов;
2) Можно через этот хиттест;
А как ещё можно? И что будет выгоднее?

Старый 27.12.2002, 12:01
Max N Chubin_ вне форума Посмотреть профиль Отправить личное сообщение для Max N Chubin_ Найти все сообщения от Max N Chubin_
  № 9  
Max N Chubin_
 
Аватар для Max N Chubin_

Регистрация: Nov 2001
Адрес: Moscow, Russia
Сообщений: 720
Отправить сообщение для Max N Chubin_ с помощью ICQ
Thumbs down м-да...

комментарий по поводу
Цитата:
И что лучше в моём случае (мне просто круги нужны):
ты попробуй и то и другое...

hitTest имеет 2 вида:
1) пересечение прямоугольных областей вокруг объекта
2) перечесение контура объекта с точкой

в связи с этим есть смысл использовать hitTest если шары небольшого размера (раз они маленькие их может быть много)
а в случае шаров большого размера я бы попробовал метод расчета через координаты центра + радиус-азимут в сторону другого объекта...

вообще говоря самое оптимальное по моему это hitTest во второй форме, но с упредительным расчетом столкновения в следующей точке.
Объясню: когда шарик движется по экрану он движется дискретно, т.е. с каким то шагом. Так вот чтобы не было такого что шарик при столкновении погружается в объект-препятствие до самого центра или глубже(из-за большого шага) или вообще пролетает сквозь обект, нужно расчитывать координату шара следующую за текущей и проверять в ней и нескольких промежуточных точках столкновение с объектами, а затем корректировать координату шара.
Короче это быстрее нарисовать, чем объяснить.
а если бы ты сделал примерчик для своей задачки (раз уж исходник супер секретен), то было бы ваще хорошо!
__________________
Max.

Старый 28.12.2002, 19:13
  № 10  
Mad_Cat
Guest

Сообщений: n/a
Thumbs down THX

Спасибо. Дальше, я думаю, разбирусь. Мне просто хотелось узнать, что лучше, чтобы зря не делать долго, а потом убедиться в том, что вышло несколько фигово.
А с шагами - там всё тоже вроде бы понятно.
Мне собственно надо абсолютно неупругое соударение, т.е. чтобы шарики прилипали друг к другу, поэтому даже если один из них и проникнет немного внутрь другого, то это даже лучше. А пролететь насквозь - врядли, т.к. скоростей настолько больших они вроде бы не будут развивать.
Что касается конура, то это тоже то, что мне нужно, т.к. шарики, прилипая друг к другу, не будут уже шариками

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

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

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


 


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


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