AS3: убедитесь, что дети остаются в форме родительского мувиклипа - PullRequest
3 голосов
/ 18 марта 2010

Красный: Форма внутри родительского фрагмента ролика,
Желтый: Дети внутри родительского видеоклипа

Изображение http://frontenddev.com/images/stack.png

Я бы хотел оживить желтые точки, но убедитесь, что они никогда не выходят за границы красной фигуры. Как я могу подойти к этой проблеме?

Ответы [ 3 ]

0 голосов
/ 18 марта 2010

Попробуйте с hitTestObject. Он оценивает экранный объект, чтобы определить, перекрывается ли он или пересекается с экранным объектом obj.

for each(var yellow:DisplayObject in yelloDotsArray)
{
  if(yellow.hitTestObject(theRed))
    trace("this dot is within the limits");
  else
    trace("this dot is outside the red area");
}
0 голосов
/ 18 марта 2010

Поскольку внешние фигуры являются прямоугольниками (или объединением прямоугольников в качестве изображения), а внутренние фигуры являются кругами, проверка расстояния между центром круга и краями всех прямоугольников для всех окружностей намного дешевле, чем использование hitTestObject. *

Кроме того, я предлагаю использовать существующие библиотеки, такие как http://code.google.com/p/collisiondetectionkit.

0 голосов
/ 18 марта 2010

Это в основном эквивалентно использованию собственного физического движка для создания пользовательских фигур.Я предлагаю изучить существующие физические движки и применить один для удовлетворения ваших потребностей.

Тем не менее, если все в порядке, когда объекты выходят за пределы экранного объекта, и вы просто не хотите, чтобы они появлялись в этом случаеВы можете использовать вторую копию того же экранного объекта для маскировки исходного объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...