Билд v0.0.7.1 - фикс масштабирования и ещё пары штук
Содержание
Разрешение и масштаб
В общем-то уже писал в Discord - были траблы с настройками масштабирования, из-за которых на большом разрешении было видно всю карту, а на низком даже кнопка начала забега спряталась
Теперь масштаб везде одинаковый
- Viewport width/height снизил с
2560x1440до1920x1080 - Stretch Mode заменил на
canvas_items - Aspect заменил на
expand
К сожалению, это означает, что на разрешении 2K будет мыльцо, поскольку 2560/1920 = 1.333333
Поэтому я сделал канвасом доминирующий ныне Full HD - чтобы на нём была оригинальная картинка
Также я перелопатил интерфейс выбора персонажа и поменял масштаб всего остального интерфейса - с уменьшением размера канваса всё стало слишком огромным, посему пришлось поработать руками
Рунмастер и Shift у границы
В v0.0.7 и ранее, если скастовать Shift у границы арены, то он сразу бился о коллайдер и падал
- Подвинул коллайдеры для снарядов подальше, чтобы этого не происходило
- Также Bounce и Shift теперь вылетают из центра модельки, а не из головы
- Ещё добавил выталкивание пикапов из краёв арены, если они там заспавнились
Не вижу Bounce
В качестве временной меры, я сделал так, что подбираемый Bounce находится всегда на переднем плане. Теперь он не затеряется за камнями Pulse, но выглядит это стрёмно - надо будет как-нить получше обыграть
Утечки памяти
Также обнаружил херову тучу утечек памяти. А ещё я, кажется, понял, почему нажатие на Quit вешает игру секунд на 30 - она как раз вычищает весь накопившийся мусор из памяти
- Удалил все Autoload-ноды и заменил их глобальными классами. Им незачем быть нодами, и местами они как раз порождали orphan nodes
- Пробежался ещё раз по местам, которые дёргают
remove_child, на предмет того, не забыл ли я вызвать где-то следомqueue_free. Нашёл пару мест - А ещё - помните вот этот пост? Так вот, после него я-таки сделал так, что юниты удаляются из памяти только через 10-20 секунд после смерти. Но если в этот момент ты сам умрёшь или выйдешь из забега, то таймеры, которые это отсчитывают, разумеется, повиснут. Чтобы это пофиксить, я завёл
deadge_stashв ноде забега, и перед закрытием дёргаюqueue_freeвсех нод оттуда
В результате игра всё ещё зависает при попытках выйти, если был запущен хотя бы один забег, но уже не на 30+ секунд, а на 10. А без запуска забега дак вообще сразу выходит
Буду искать утечки дальше - где-то они ещё остались, причём текут уже не ноды, а именно объекты и ресурсы. Похоже, их придётся руками вычищать, но это какая-то залупа, если честно