2013-05-29 2 views
-3

Я разрабатываю игру, где мне нужно создавать разные закрытые фигуры с использованием заданного количества Matchsticks MovieClip. Так может ли кто-нибудь помочь мне найти, закрыта ли фигура, созданная пользователем, или нет?Как найти форму закрытой формы или нет?

ответ

1

Сделать сетку и спички занимают плитки из сетки. Примените простой алгоритм поиска пути (любой будет делать, получить простой) от центра фигуры до точки за ее пределами. Если сбой пути следования, значит, его закрытая форма. Если он достигает цели, значит, есть путь к ней, означает ее не закрытую форму.

+0

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

+0

Если вы включите игру в сетку, как я прикусил, просто разделите на 2 ширину и высоту, будет ячейка (округленная вниз), которая является центром. Если нет, вычислите x, y, ширину, высоту фигуры (или если совпадения находятся в спрайте, получите x, y, width, height из него напрямую) и разделите на 2. – Discipol

+0

Спасибо, друг ... Попробуем это вне .... –

0

Предположим, что ваши штрихи имеют толщину 1 пиксель.

  1. Возьмите любой пиксель на линии.
  2. Возьмите 4 своих соседей (назовите их 4N).
  3. Используйте BitmapData.flooFill на каждом пикселе 4N.
  4. Затем для каждого из них проверьте, заливают ли заливки 3 других. Если бы это произошло, ваша форма не была закрыта. Если хотя бы один сосед остается чистым, по крайней мере, в одном из 4 floodFills, форма закрывается.
+0

Попробуем и дадим вам знать результат. Спасибо за ответ –

+1

вы предполагаете, что пиксели спичек соединяются, что они все равно сплошного цвета и т. д., если user2431915 использует растровую графику, этот метод делает не работа. – Discipol

Смежные вопросы