![]() |
hitTestObject в "дырке"
Вложений: 1
Подскажите как бы сделать так, чтобы рыбки не выплывали за пределы аквариума? Думал, сделать проверку на hitTestObject, но с такой фигурой не прошел этот вариант, ведь превратив красную фигуру в мувиклип, он автоматически заполнит неотрисованые места. И в "дырке", где должны плавать рыбки, все объекты пересекутся. Что делать?
|
Если просто - можешь задать внутри окружности прямоугольник из 4-х стенок и проверять столкновение рыбок с ними. При столкновении рыбка меняет направление
Если сложно - то можно представить все объекты в виде BitmapData и вызвать HitTest(), который попиксельно сравнивает битмапы |
лучше просто координаты проверять.
|
с координатоми кажется все сложнее
|
Цитата:
Т.к. аквариум круглый, то достаточно измерить расстояние от его центра до рыбки, и если расстояние больше радиуса аквариума - значит надо разворачивать рыбку |
Значит нужно рассчитывать расстояние от центра аквариума до положения рыбки. Центр аквариума у нас x=0 и у=0, делаем событие на ENTER_FRAME отслеживающее положение рыбки по X и Y. Ну и сам радиус равен 170 pix. А по какой формуле можно рассчитать расстояние, которое преодолевает рыбка?
Добавлено через 10 минут Ну как бы по теореме Пифагора? Помогите записать это с помощью as3.0 h - гипатенуза x - катет y - второй катет h = корень квадратный из суммы x в квадрате и у в квадрате |
А зачем здесь теорема Пифагора, которая, как я помню относится вовсе к треугольникам?
Я считаю здесь можно просто измерять расстояние от центра аквариума, до центра рыбки (учитывая ее ширину). Расчитать расстояние между точками можно по формуле Код AS3:
|
Рыбка:
Xfish Yfish Rfish (радиус круга описывающего рыбку, определяется ее размером) Аквариум: Raquarium Расстояние до центра круга, описывающего рыбку не должно быть больше радиуса аквариума за вычетом радиуса вышеуказанного круга: Код AS3:
Вот и все. Разворачивайся рыбка большая и маленькая. |
ничего не получилось, с вот этой формулой всегда вылетают предупреждения
Код AS3:
Код AS3:
|
Скобку лишнюю убери в конце.
|
| Часовой пояс GMT +4, время: 23:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.