![](images/chestnut/misc/left.gif) |
28.01.2021, 18:08
|
#46
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Вопросы
Сообщение от MadMedic
Импортированы как текстуры, все настройки импорта были по умолчанию кроме выключенного флажка filter
|
Погоди, если у тебя для 2D интерфейса то нужно выбрать Image.
По идеи.
Нет.
ant0N, где почитать про режимы импорта?
Почему если я Texture меняю на Image или TextureAtlas редактор обязательно перезапускается?
...
Так, TextureAtlas вроде позволяет несколько изображений в одно объединить, ладно.
Сообщение от ant0N
В общем, изображения это "сырые" данные и чтобы они работали везде и всегда одинаково хорошо их нужно "запечь", т.е. импортировать в родные форматы движка.
|
Ты имеешь ввиду настройки импорта, а не пересохранение в .tex?
Потому что в последнем не вижу смысла (пригодилось для mip-map), в первом же копии импорта создаются автоматически.
P. S. Термин «запечь» в данном случае неуместен.
P. P. S.
Сообщение от Arton
Ты имеешь ввиду настройки импорта, а не пересохранение в .tex?
Потому что в последнем не вижу смысла (пригодилось для mip-map)
|
Ошибся, в этом есть смысл. Не будет копии в папке import, т. к. файл уже готов для движка.
По идеи относиться ко всем ресурсам окромя сцен и кода.
|
(Offline)
|
|
31.01.2021, 18:30
|
#47
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: Вопросы
Сорян что так долго, работал
Сообщение от Arton
ant0N, где почитать про режимы импорта?
Почему если я Texture меняю на Image или TextureAtlas редактор обязательно перезапускается?
|
В доках, прям в поиск вбивай то что нужно найти, там достаточно информации.
Например: Texture, Image
То, что редактор перезапускается, это нормально для некоторых ресурсов. Видимо необходимо для реимпорта, думаю со временем это исправят.
Сообщение от MadMedic
Версия 3.2.3 штабле официале
Импортированы как текстуры, все настройки импорта были по умолчанию кроме выключенного флажка filter
|
Нажми на проблемное изображение и покажи что у тебя в окне импорта написано.
__________________
Абсолютли!
|
(Offline)
|
|
01.02.2021, 06:33
|
#48
|
ПроЭктировщик
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений (для 410 пользователей)
|
Ответ: Вопросы
Вот скрин. Тут и настройки импорта, и ворнинги и кусочек кода
|
(Offline)
|
|
01.02.2021, 10:39
|
#49
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: Вопросы
Твоя проблема в том, что ты грузишь картинки не через Resourceloader.
Поэтому настройки импорта игнорируются.
Вместо:
temp_image.load("path")
Пиши:
temp_image = load("path")
__________________
Абсолютли!
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо ant0N за это полезное сообщение:
|
|
01.02.2021, 10:58
|
#50
|
ПроЭктировщик
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений (для 410 пользователей)
|
Ответ: Вопросы
О, спасибо!
|
(Offline)
|
|
28.04.2021, 11:36
|
#51
|
ПроЭктировщик
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений (для 410 пользователей)
|
Ответ: Вопросы
Хм, скрипты обновляются в разных потоках? Получил ситуацию , когда в ходе выполнения функции скрипта, значение переменной другого скрипта изменилось.
|
(Offline)
|
|
28.04.2021, 22:41
|
#52
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Вопросы
Сообщение от MadMedic
Хм, скрипты обновляются в разных потоках? Получил ситуацию , когда в ходе выполнения функции скрипта, значение переменной другого скрипта изменилось.
|
Я не в курсе потоков, но на всякий случай, у тебя какая версия?
В версии 3.2.3 была ошибка из-за которой после удаления объекта не удалялась ссылка, и вела на новый объект в этой же памяти (часть оптимизации).
Актуальная версия сейчас 3.3
|
(Offline)
|
|
30.04.2021, 05:03
|
#53
|
ПроЭктировщик
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений (для 410 пользователей)
|
Ответ: Вопросы
Сообщение от MadMedic
Хм, скрипты обновляются в разных потоках? Получил ситуацию , когда в ходе выполнения функции скрипта, значение переменной другого скрипта изменилось.
|
Сорян, это я затупил по серьезному и накосячил, все работает нормально. Еще раз убедился, что Годот классный ))
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.04.2021, 12:22
|
#54
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: Вопросы
Сообщение от MadMedic
Хм, скрипты обновляются в разных потоках?
|
в одном конечно, иначе нужны были бы всякие мьютексы и вот это вот все
__________________
Абсолютли!
|
(Offline)
|
|
31.03.2022, 07:38
|
#55
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Вопросы
Загружаю сцену:
Создаю переменную Scene
Кнопка 1 Загружаю-подключаю
Scene = load("res://Level_1.tscn")
var scene = Scene.instance()
var spat_node = get_node("Spatial")
spat_node.add_child(scene)
|
Кнопка 2 Удаляю-очищаю
var scene_del = get_node("Node//Level_1")
scene_del.queue_free()
|
Но я хочу под одной переменной Scene, загружать разные уровни .tscn
И сразу возникает вопрос, как правильно очистить Scene?
В справке рекомендуется queue_free(), ей я могу удалить только инстанс загруженной сцены.
Если я копирую код выше, но меняю загрузку на Level_2.tscn
И начинаю по очереди загружать-выгружать разные сцены.
То в консоли видно что с каждой подобной загрузкой, увеличивается PackedScene (см. скриншот).
Получается в памяти продолжают висеть объекты. Что логично, я ведь ничего не делаю с Scene.
Вопрос правильно удалять ресурсы? Как полностью очистить Scene что бы загрузить под ней новую?
Какой подход вернее, 1 переменная для загрузки всех уровней, или для каждой своя переменная?
godot_log.webp
|
(Offline)
|
|
31.03.2022, 11:00
|
#56
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: Вопросы
Сообщение от Arton
В справке рекомендуется queue_free(), ей я могу удалить только инстанс загруженной сцены.
|
Да, так и надо делать
Мне кажется что твоя проблема в том, что ты на самом деле не удаляешь прошлую сцену
вот ты ее создаешь:
var scene = Scene.instance()
var spat_node = get_node("Spatial")
spat_node.add_child(scene)
а вот удаляешь:
var scene_del = get_node("Node//Level_1")
scene_del.queue_free()
что за путь такой? get_node("Node//Level_1")
Попробуй у себя сделать удаление так:
var spat_node = get_node("Spatial")
for n in spat_node.get_children()
n.queue_free()
__________________
Абсолютли!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.03.2022, 20:54
|
#57
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Вопросы
Сообщение от Arton
Загружаю сцену:
Создаю переменную Scene
|
ant0N ответил в чате.
Короче всё правильно. Надо удалять ноду, о загруженном ресурсе беспокоится не надо.
При необходимости его можно обнулить Scene = null.
Система так и работает, загрузить ресурс, создать его инстанс, подключить к нужной ноде.
Примерный код:
Подробности тут - Reference.
Godot_load_remove_scenes.webp
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
|
|
19.06.2022, 07:25
|
#58
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,021
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Вопросы
У меня созрел вопрос (в контексте движка).
Как правильно организовать программную часть игры.
Самый простой способ, на каждый активный объект: дверь, персонаж, враг и т. д. Нацепить скрипт, обернуть в сцену. И расставить на игровой-сцене инстансы.
Просто, быстро, сердито.
Второй вариант, добавлять всё активное в группы/списки, и тому подобное.
А дальше управлять всем этим из универсального скрипта. Скрипт для врагов, скрипт для всех дверей и т. д.
Сложнее, надо продумать правила для разработки уровней. По идеи выигрыш в скорости и удобство управления.
Как «правильно», насколько допустим первый вариант вне прототипа?
Какая разница в скорости выполнения и т. п.?
P. S. Написал и подумал, только во втором варианте можно нормально организовать работу через потоки.
|
(Offline)
|
|
19.06.2022, 10:55
|
#59
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: Вопросы
Вопрос слишком абстрактный. Если ты спрашиваешь как сделать архитектуру игры, то на этот вопрос нет правильно ответа, есть лишь разного рода паттерны.
Советовать конкретный паттерн бессмысленно, это зависит от проекта.
Но есть некоторые правила, которым следует придерживаться:
- единая точка входа в игру, единый апдейт.
- скрипты, которые ты весишь на объекты в редакторе - просто вьюшки, в них не должно быть логики.
Вся логика должна быть на другом уровне (в Контроллерах, в случае MVC или в Системах - если ECS)
В общем, тут мне проще тебе объяснять на живом примере уже в IDE, чем расписывать это на форуме
__________________
Абсолютли!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:34.
|