Если создавать подобный объект в годот, реагирующий на игрока, каждый блок травы (БТ) должен быть отдельной нодой, объектом, Каждой ноде надо задать координаты, что займет очень много времени, В добавок, каждый кадр каждый БТ будет отслеживать, не вступил ли игрок в его зону... Еще и делать это будет на всей карте. Звучит не очень оптимизировано, не правда ли?
Чем хорош годот, так это возможностью одну и ту же задачу решать разными способами. Как ты решил с координатами, можно аналогично через сигнал для узла Area2D. Интересно было бы посмотреть в дебаге на график выделяемой памяти, но у меня нет похожего проекта, чтобы проверить. Попробую как-нибудь.
Респект за выбор годота. В дефолде это накостылить было бы сложнее.
Кстати да. Area2D можно было бы попробовать привязать к персонажу. Возможно был бы проигрыш по оперативной памяти. Мне кажется в таком случае нужно было бы прогружать всю траву при запуске и ставить на паузу. А хотя...
нода с травой у меня весит 11 кб, даже если ее умножить на 1000 блоков, в крайнем случае вся трава на уровне будет занимать 11-12 мб оперативной памяти. Другой вопрос к цпу, он будет нагружен сильнее, но как мне кажется, это до смешного небольшая разница.
...не остаться в этой траве...
надо будет что-то запрятать в траве чтобы игроки зае*ались искать XD
Симпатично получается, хотя метод с присваиванием / хранением и анализом координат мне кажется малость топорным - точно в годоте нет встроенного способа обрабатывать только объекты в кадре, а остальные оставлять в айдле?
А хрен его знает. Единственное что я заметил, так это то что по отладке , мне удалось оптимизировать траву до такого уровня что она перестала понижать производительность вовсе. Изначально она сильно нагружала, а теперь перестала вовсе. Так что топорность метода позволяет выйграть в оперативной памяти, загружая всего 30 травы на уровне, а не всю. И не нагружает процессор, так как запросов приходится минимум.
Мне кажется что даже если и есть метод, то вся трава на уровне все равно будет храниться в оперативной памяти, а если нет, то игра будет постоянно подгружать и выгружать из памяти траву при перемещении. Что тот, что другой вариант не очень хорошо выглядит. Мне кажется только пул объектов может достичь желаемой оптимизации.