Добавлен MpW
У меня такой вопрос как разбить фигуры на прямоугольники?
возьмем такую ситуацию, что вам заранее известна форма, и имеются точки. нужно разбить фигуру на прямоугольники (rect), дело в том что саму область-фигуру не добавишь в регион. По любому надо разбивать на ректы. Ими проще проверять лежит ли точка внутри ректа или нет, чем какая то фигура.
возьмем такую ситуацию, что вам заранее известна форма, и имеются точки. нужно разбить фигуру на прямоугольники (rect), дело в том что саму область-фигуру не добавишь в регион. По любому надо разбивать на ректы. Ими проще проверять лежит ли точка внутри ректа или нет, чем какая то фигура.
Я уже многое сделал, у меня система находит эту фигуру. И надо после разбить на ректы.
Вот пример уже имеются 6 точек p1-p6, могу найти p7-p8. Теперь надо как-то собрать ректы (на глазок понятно что там 3, а то и меньше 2). надо как-то написать алгоритм, что эти отрезки образовали ректы
Вот пример уже имеются 6 точек p1-p6, могу найти p7-p8. Теперь надо как-то собрать ректы (на глазок понятно что там 3, а то и меньше 2). надо как-то написать алгоритм, что эти отрезки образовали ректы
Фигуры могут быть любой формы
находил такой вопрос вот здесь, но ответа не нашел. алгоритм просто нужен
Принятый ответ
Вот конечный вариант. Переделал на хэш-таблицу
Исправил многие подвисы - большая часть которых эта строки. Именно строки вызывают подвисы. Они не только в дебагах, но в ExecuteFunc, строковое название молнии и пр. И теперь молнии могу миллиардами создавать без проблем. Я тексты строк все сохранил в бд. Без этого почему у юнитов анимация ходьбы поддергивалась.
Теперь все работает как надо и как часики. Единственная зараза - когда строю несколько деревней, потом вылетает чего-то с критом. Но это происходит очень и очень редко. где-то с шансом 0.05%. Возможно либо работаю с несуществующими объектами либо пытаюсь выгрузить из хэша не существующие данные. У вара какие то проблемы.
Пробовал вставить проверки GetHandleId(object) > 0 или HaveSavedReal или HaveSavedHandle - теперь сохранять карту не хочет. Пробую снова написать код
Исправил многие подвисы - большая часть которых эта строки. Именно строки вызывают подвисы. Они не только в дебагах, но в ExecuteFunc, строковое название молнии и пр. И теперь молнии могу миллиардами создавать без проблем. Я тексты строк все сохранил в бд. Без этого почему у юнитов анимация ходьбы поддергивалась.
Теперь все работает как надо и как часики. Единственная зараза - когда строю несколько деревней, потом вылетает чего-то с критом. Но это происходит очень и очень редко. где-то с шансом 0.05%. Возможно либо работаю с несуществующими объектами либо пытаюсь выгрузить из хэша не существующие данные. У вара какие то проблемы.
Пробовал вставить проверки GetHandleId(object) > 0 или HaveSavedReal или HaveSavedHandle - теперь сохранять карту не хочет. Пробую снова написать код
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
prog, а как это сделать
Отредактирован prog
Добавляем через RegionAddCell(region,x,y) в цикле, а проверка циклами по координатам со смещением на размер ячейки.
Размер ячейки то ли 32 то ли 16, я точно не помню, но суть в том, что регионы работают на основе ячеек фиксированного размера.
Отредактирован MpW
кстати есть проблема из-за общих ячеек, один раз сильно из-за них лоханулся
Отредактирован prog
И по размеру и по координатам.
Я просто помню что у меня были похожие проблемы пока я не выверил все смещения, чтобы края попадали в правильные ячейки, но после установки правильных смещений все вроде начало работать идеально.
Отредактирован MpW
Отредактирован MpW
либо после выполнения цикла выводишь "успешно"
Vlod, да. не только это.
возможно и есть решения и проще.
регионы привязываются к определенным главным зданиям: хижина старейшины - деревня фермера, рядом с морем можно переделать в рыбацкую деревню, или деревню лесорубов
крепость - форпост у границы,
шахта - горнодобывающее поселение
когда заканчивается строительство, то дается начальный прямоугольный участок. Участок главного здания мб измениться, если рядом рядом участок принадлежит другому региону. Главные здания не должны строится близ друг друга, у них есть определенный радиус для развития.
На этом регионе проще отследить: строительство, заход противника, ии
эти регионы можно развивать, они могут разрастаться. То есть можно было бы покупать землю через меню главного здания. То есть там обычная игрушечная ферма, пустышка-здание с эффектом москитов, чтобы можно было ставить не только на свободный участок для стройки, но и на месте клифов, море и пр.
Решил я поделить на прямоугольные участки. Так как легче добавлять в регионы. Но этим есть проблемы, может лишнее добавлять. Также поделив на ректы, можно еще подсчитать площадь участка. Кстати у меня это идеально работает деление. С этим проблем нет. Есть другое, это система не работает как часы
кстати пробовал вместо регионов массив вершин ректов юзать. Но пока что это в зачатке находится. Написал пока не рабочий кож