|
|
|||||
Регистрация: May 2009
Сообщений: 45
|
hitTest - области его действия
Ребят, помогите разобраться с проблемой.
У меня есть карта в игре, на которую можно помещать объекты. Дело в том, что объекты можно помещать не везде. Те участи, где размещатся нельзя я зарисовала и сделал из этого выделения мувик. Ну и написала что если мувик объекта касается мувика запрещенных областей - то объект не размещается. Дело в том, что hitTest действует по рамке мувика. Можно ли сделать hitTest, который будет работать именно с телом мувика а не с его границами? Если нет - то как иначе можно осуществить то, что мне нужно? Заранее большое спасибо! |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
Потому что в действительности hitTest работает либо по содержимому клипа, либо по площади ограничивающей его коробки (в зависимости от параметра). |
|
|||||
Регистрация: May 2009
Сообщений: 45
|
Этот параметр может быть задан только в случае задания параметров x и y.
А мне нужен объект а не координата. При задании объекта - проверяется факт пересечения ограничивающих рамок объекта target и указанного мувиклипа, возвращая true, если они имеют хотя бы одну общую точку. Последний раз редактировалось Angelinka; 11.06.2009 в 01:19. |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Любопытно. Сейчас взгляну в справку.
Добавлено через 18 минут Вы правы. Можно попробовать выложить фигуру коробками и вместо хит-теста написать функцию, которая будет в цикле проверять hitTest у всех коробок. |
|
|||||
Регистрация: May 2009
Сообщений: 45
|
Да, такая идея у меня уже была. Думала, может есть способ по-проще... Спасибо.
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
bitmap hitTest
на крайний случай, если ещё и важно, в какой точке столкновение, а математикой заниматься лень: 1) определяем границы мувика с хиттестом в цикле - поточечено собираем контур (хотя, тут тоже лучше через битмапу - быстрее) 2) определяем столкновения уже этих точек
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
По-моему границы можно определить только у круга.
Нахождением радиуса... А у других фигур только по рамке клипа |
|
|||||
Регистрация: Aug 2009
Сообщений: 2
|
День добрый! У меня та же проблема, что и у автора. В Аскрипте я несколько дней. Я написал такой код для управления мувиклипом в кадре:
onClipEvent (load) { var pv = 0; var psc = ((Math.PI/2)/90); } onClipEvent (keyDown) { if (Key.isDown(37)) { _rotation -= 5; pv = pv+5; } if (Key.isDown(39)) { _rotation += 5; pv = pv-5; } if (Key.isDown(38)) { var Xor = _x; var Yor = _y; _y += 5*-(Math.sin(pv*psc)); _x += 5*(Math.cos(pv*psc)); } if (Key.isDown(40)) { var Xor = _x; var Yor = _y; _y -= 5*-(Math.sin(pv*psc)); _x -= 5*(Math.cos(pv*psc)); Updateafterevent(); } } onClipEvent (enterFrame) { if (_root.flor.hitTest(this)) { this._x = Xor; this._y = Yor; } } как и задумывалось. Вопрос - как создать "клона" клипа "flor", что бы не писать код столкновения на каждый случай? Цитата:
Как можно сделать поточечный контур? |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Так как вы уже не пишут лет 10.
Поточечный контур делается так - берем пиксель где нибудь вверху и опускаем его плавно до момента, когда он соприкоснется с объектом (hitTest иль getPixel). Получили 1 точку. Двигаемся вправо - получаем вторую. Так получаем верхний контур. Аналогично получаем остальные. Хотя, я уверен, есть более быстрые и простые способы, просто необходимости их изучать пока не было.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 12:37. |
|
« Предыдущая тема | Следующая тема » |
|
|