Мне требуется для одной мини-игры сделать так, чтобы области которые имеют границы по горизонтали и вертикали (т.е. диагональное пересечение сразу отпадает) выделялись как одна единая область.
СУТЬ В ТОМ, что у меня есть поле в виде океана, похожее как в шахматах или морском бою. В начале игры случайным образом по всему полю появляются острова с сердцами, которые можно разрушить.
Те острова которые пересекают по вертикали и горизонтали - становятся одним островом, а их сердца заменяются на других юнитов (те же сердца, но на 1 уровень выше). При чём, чем кол-во островов в одной области выше - тем выше уровнем и сердца (т.е. остров состоящий из 7 областей будет иметь соответственно 7 уровень сердец)
Не приложу ума, каким образом это можно сделать?
Из вариантов что мне пришли в голове:
  1. Создавать проверку условий каждой области, и исходя из того, есть ли в соседней клетке сердце - повышать уровень обоих клеток на 1 (но тогда возникает проблема с повторным условием, когда например в клетке A3, являющейся соседом клетки A2 - тоже имеет сердце. Нужно как-то создавать условие предусматривающее и это).
  2. Как-то добавлять каждое сердце, из пересекающих в один отряд, через функцию "отряд". Однако возникает проблема того, что кол-во островов полностью рандомное и нужно учитывать каждый. Получается что для этого нужен очень громоздкий триггер, с если-то-иначе действие для каждой последующей клетки.
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
чтобы сделать области как одну достаточно взять 2 минимальных координаты первой и 2 максимальных второй
7
чтобы сделать области как одну достаточно взять 2 минимальных координаты первой и 2 максимальных второй
В каком типе действий это находится? В "Область" есть только Move to Offset. Ещё, видимо из-за того что у меня NewGen, есть тип "Region". В остальном, не нахожу действий которые подходили бы под подобный параметр.
7
rsfghd:
тебе это нужно?
Ммм... Я думаю что нет. Мне нужно скорее чтобы области, чьи границы "соприкасаются" стали одной областью.
Допустим чтобы эти 2 области, через триггеры стали 1 единой областью (ну или одна из них "поглотила" другую в себя).
(Ниже прикрепил пример)
Загруженные файлы
27
есть
  • прямоугольные ректы. Если там прямоугольная форма, то ее можно растянуть еще. Как у вас выше.
  • регионы, в которые добавляют/вычищают в себя все ректы. Тут есть у вас будут различные прямоугольные формы: Г, T итд. вспоминаем тетрис. тогда нужно разбивать области на прямоугольные области
  • можно просто запоминать
Чтобы оставить комментарий, пожалуйста, войдите на сайт.