Привет.
Наткнулся на маленькую программу, но все равно не могу в ней разобраться.
Там и смена разрешения экрана и микшеры звука
и назначение клавишь и настройка мыши.
Как это все работает? Программа в примерах в самом движке "Game Template",
но она без комментариев....
Как сделать попроще и понятнее смену разрешения экрана в самом приложении?
Спасибо за внимание.
В Godot (и в современных понятиях) не принято и не рекомендовано лезть в физическое разрешение монитора.
Хотя бы потому, что это аппаратно/платформо-зависимая фича, и не везде поддерживается в принципе: на современных
мониторах пиксели физические, а не зависят от частоты развертки луча.
Зато есть переключение в fullscreen и понятие логическое разрешение экрана.
Описывается здесь: https://docs.godotengine.org/en/stable/tutorials/rendering/multip… olutions.html
В Godot есть 3 типа визуальных нод: 3D, 2D, Controls. И все они ведут себя по разному, в зависимости от вышеозначенных опций.
Второй подвопрос - об элементах GUI (Controls). Выравнивать их надо с помощью свойств Anchor, Margin и UI-контейнеров.
А если совсем по простому, то не лезь в это. Делай игру по примерам.
Когда пообвыкнешься, сможешь задать конкретные вопросы.
Да я уже разобрался как сделать само растягивающееся окно.
Хотелось бы скрыть этот ненавистный крестик, а то по себе знаю какого это случайно во время игры нажать на него.
Фулскрин не помогает. Он сразу все настройки срубает.
Но опять же не знаю как программно менять размер экрана.
Der FlugSimulator
> А если совсем по простому, то не лезь в это. Делай игру по примерам.
> Когда пообвыкнешься, сможешь задать конкретные вопросы.
По себе знаю какого экран криво настраиватся и какого это не иметь возможности починить это.
По этому эта функция должна быть во всех уважающих хотя бы себя программах.
pavelsv
> Фулскрин не помогает. Он сразу все настройки срубает.
Фулскрин непричём. Если "слетают настройки", то
Der FlugSimulator
> Выравнивать их надо с помощью свойств Anchor, Margin и UI-контейнеров.
Ненавистный крестик убирается опциями окна display/window например display/window/size/borderless
Размер окна, меняется там же, или кодом
get_window().size = Vector2i(width, height)
pavelsv
https://www.youtube.com/watch?v=1_OFJLyqlXI
Смотри всякие видюшки, на ютубе.
После этого - копайся в исходниках, если у видюшки есть линк на гит-хаб, или типа того.
https://www.youtube.com/watch?v=rqdt7rz5yBw
...
Node3D # корень три-мерной сцены.
../Node3D_Extra
../CanvasLayer # нода-разделитель, и парэнт для менюшных нод.
../../Label # сюда можно что-нить печатать (хит-поинты).
Можно выделить ноду лэйбла ... вручную включить 2D (в верхней строке),
и будет видно слово View, в строке, под названием сцены - справа,
есть зелёный кружок с псевдо-крестиком - кликаю по нему,
и выбираю "Anchor preset" (например, Center_Top).
Теперь, лэйбл сам будет подстраивать свою позицию.
https://docs.godotengine.org/en/stable/tutorials/ui/index.html
// про звуки..
https://www.youtube.com/watch?v=cvBbkDKT7yI
Заморочки со звуком..
https://docs.godotengine.org/en/stable/tutorials/audio/audio_buses.html
Der FlugSimulator
> Der FlugSimulator
> > Выравнивать их надо с помощью свойств Anchor, Margin и UI-контейнеров.
Нашел Спасибо.
Сейчас мучаю звук и музыку. Делаю вроде все по видео, но ничего не получается.
Сейчас я его скину.
slatazan
> Можно выделить ноду лэйбла ... вручную включить 2D (в верхней строке),
> и будет видно слово View, в строке, под названием сцены - справа,
> есть зелёный кружок с псевдо-крестиком - кликаю по нему,
> и выбираю "Anchor preset" (например, Center_Top).
> Теперь, лэйбл сам будет подстраивать свою позицию.
Да у меня вообще весело с экраном. тупо рандомно кликаю разные варианты,
а они то так работают , то по другому. В общем Скайрим какой-то.
Но интереснее, потомучто реально-полезный опыт, а не тупо циферки.
Вроде как-то подобрал, чтобы экран в полноэкранном режиме растягивался на весь монитор.
вот что это за ошибка такая?
pavelsv
Возможно, ты "задел" сигнал, когда копался в свойствах кнопки "Main_Menu/Quit",
либо там это давно было. Возможно, скрипт перенёс на другую ноду.
Попробуй добавь такой _пустой_код..
func _on_quit_tree_exiting(): pass # вместо этого, код, который исполнять, когда прога закрывается.
E 0:00:02:0183 main_menu.tscn::GDScript_4iyax:13 @ _on_play_pressed(): Node not found: "music" (relative to "/root/Main_Menu").
<Ошибка C++> Method/function failed. Returning: nullptr
<Исходный код C++>scene/main/node.cpp:1651 @ get_node()
<Трассировка стека>main_menu.tscn::GDScript_4iyax:13 @ _on_play_pressed()
pavelsv ты код выкладывай где ошибка.
Blueprint
> pavelsv ты код выкладывай где ошибка.
хм я уже столько диалогов веду.
Я думал я скрин уже выкладывал.
скрин звук я загрузил и даже проигрывал в меню.
Но вызвать звук с помощью кода все равно не получатся.
Blueprint
> ты код выкладывай где ошибка.
Так написано же: main_menu.tscn: встроенный скрипт, строка 13. Не найдена нода по прилагаемому пути.
Но ошибка в том, что автор полез в дебри, а надо бы ознакомиться с документацией на редактор и начала работы с движком.
Der FlugSimulator
> Так написано же: main_menu.tscn: встроенный скрипт, строка 13. Не найдена нода по прилагаемому пути.
>
> Но ошибка в том, что автор полез в дебри, а надо бы ознакомиться с документацией на редактор и начала работы с движком.
Но переходы между страницами работают же.
Делал по примерам - видео.
Все на месте AudioStreamMP3? дал ему соответствующее имя, и создал автобус, который тоже переименовал.
pavelsv
Я без понятия, что там у тебя за проект. И за тебя, его отлаживать не буду.
Ты путаешь понятие "вопрос" и просьбу провести отладку твоего кода. Неважно, как он у тебя получился.
Если ты код не менял и там баг - обращайся к автору. Если менял - это целиком твоя ответственность.
Ты сам должен понимать, для чего ты его менял.
Для меня - это загадка. Ты свои задачи вообще никак не обозначил.
pavelsv
> хм я уже столько диалогов веду.
А это еще одна проблема. Ты сам накидал сюда неразбираемую кучу.
Еще раз уточню: задавай вопросы по движку.
Вопросы типа "почему у меня не получилось скопировать туториал" разбирают на совсем других форумах ))
Der FlugSimulator
> Ты свои задачи вообще никак не обозначил.
Задачи в главном и первом сообщении!!!!!
все сделано как в этом видео, шаг за шагом.
Тема в архиве.