Добавлен Maniac_91
Имеется в виду размер карты. Я создал триггер, который создаёт точку, проверяет текстуру земли, создаёт в точке объект (соответствующий местности), удаляет эту точку и перезапускает себя. Естественно, когда количество объектов каждого типа становится равным нужному числу, рекурсия прерывается, и триггер отключается.
На карте 64х64 всё действует идеально. Несколько секунд - и готово. Но когда я увеличил границы карты, то Warcraft стал просто вылетать, даже не успевая выдать ошибку.
Поставил после всех действий ожидание в 0 секунд - вылета не происходит, но объекты на карту ставятся очень долго. Например, около 1500 исполнений триггера при размерах карты 96х96 и количестве объектов 360 (18 видов по 20 штук). А карту и количество объектов и их типов я планирую расширять.
Существует ли способ обойтись без ожидания или вообще как-нибудь ускорить расстановку?
На карте 64х64 всё действует идеально. Несколько секунд - и готово. Но когда я увеличил границы карты, то Warcraft стал просто вылетать, даже не успевая выдать ошибку.
Поставил после всех действий ожидание в 0 секунд - вылета не происходит, но объекты на карту ставятся очень долго. Например, около 1500 исполнений триггера при размерах карты 96х96 и количестве объектов 360 (18 видов по 20 штук). А карту и количество объектов и их типов я планирую расширять.
Существует ли способ обойтись без ожидания или вообще как-нибудь ускорить расстановку?
Принятый ответ
Maniac_91, фактически такая генерация и была придумана Нотчем для майнкрафта. Просто обычная система "биомов". Это кстати очень неплохо, ведь для каждого биома ты можешь подгружать свой пул декораций и так разнообразить визуальную составляющую игры.
Так же перед началом игры (после загрузки карты), можно сделать плашку "загрузки генерации", которая показывала бы пользователям % готовность генерации. А далее, таймерами или вейтами, выставлять "отдых" для варкрафта из-за нагрузки. Мол, каждые 1500 выполнений триггера - отдохни на секунду, хорош.
Так же перед началом игры (после загрузки карты), можно сделать плашку "загрузки генерации", которая показывала бы пользователям % готовность генерации. А далее, таймерами или вейтами, выставлять "отдых" для варкрафта из-за нагрузки. Мол, каждые 1500 выполнений триггера - отдохни на секунду, хорош.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Попробуй поставить таймер с периодом 0.001 сек, например.
Так же перед началом игры (после загрузки карты), можно сделать плашку "загрузки генерации", которая показывала бы пользователям % готовность генерации. А далее, таймерами или вейтами, выставлять "отдых" для варкрафта из-за нагрузки. Мол, каждые 1500 выполнений триггера - отдохни на секунду, хорош.
Отредактирован Maniac_91
если остаток (количество выполнений триггера / 1000) = 0, то ждать.
Надеюсь, это сработает. Завтра попробую так сделать.
было бы интересно посмотреть на карту-пример
Сделал ожидание каждые 100 выполнений триггера. Не очень тормозит, а главное - никаких вылетов)
Отредактирован nvc123
в данном случае лучше всего генерировать объекты порциями(например по 200 точек на порцию) с помощью циклов и отделять порции друг от друга вейтами (для избежания лимита потока)
это будет выглядеть как то так: