Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Godot

Ответ
 
Опции темы
Старый 03.10.2020, 11:24   #1
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 162
Написано 96 полезных сообщений
(для 386 пользователей)
Вопросы

Первонах ! Тупой вопрос. Как завершить программу? end не работает
(Offline)
 
Ответить с цитированием
Старый 03.10.2020, 11:58   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,262
Написано 2,411 полезных сообщений
(для 6,684 пользователей)
Ответ: Вопросы

Сообщение от MadMedic Посмотреть сообщение
Как завершить программу? end не работает
func _notification(what):
    if 
what == MainLoop.NOTIFICATION_WM_QUIT_REQUEST:
        
get_tree().quit() # default behavior 
https://docs.godotengine.org/en/late..._requests.html
__________________
Retry, Abort, Ignore? █
AMD Ryzen 7 3800X 4.3Ghz; 64Gb ram; Nvidia Geforce 1070Ti
AMD Ryzen 7 1700X x8 3.4Ghz; Radeon RX 570
AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
ant0N (03.10.2020), MadMedic (03.10.2020)
Старый 03.10.2020, 15:59   #3
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 162
Написано 96 полезных сообщений
(для 386 пользователей)
Ответ: Вопросы

Благодарю!
(Offline)
 
Ответить с цитированием
Старый 06.10.2020, 17:41   #4
mingw
ПроЭктировщик
 
Аватар для mingw
 
Регистрация: 01.01.2016
Сообщений: 113
Написано 60 полезных сообщений
(для 121 пользователей)
Ответ: Вопросы

жесть!
(Offline)
 
Ответить с цитированием
Старый 06.10.2020, 18:50   #5
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 804
Написано 303 полезных сообщений
(для 783 пользователей)
Ответ: Вопросы

Сообщение от mingw Посмотреть сообщение
жесть!
public override void _Process(float delta)
{
    if (
Input.IsActionPressed("exit")
    {
        
GetTree().Quit();
    }

Так лучше?
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MadMedic (08.10.2020)
Старый 07.10.2020, 23:55   #6
mingw
ПроЭктировщик
 
Аватар для mingw
 
Регистрация: 01.01.2016
Сообщений: 113
Написано 60 полезных сообщений
(для 121 пользователей)
Ответ: Вопросы

Что это за дерево у которого вызывается метод Quit ?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (08.10.2020)
Старый 08.10.2020, 00:24   #7
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 804
Написано 303 полезных сообщений
(для 783 пользователей)
Ответ: Вопросы

Сообщение от mingw Посмотреть сообщение
Что это за дерево у которого вызывается метод Quit ?
Если кратко, GetTree() возвращает SceneTree, а это основной цикл (Main Loop) сцены.
Если подробно - https://docs.godotengine.org/en/stab...l#introduction
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо ant0N за это полезное сообщение:
Arton (08.10.2020), MadMedic (08.10.2020), mingw (09.10.2020)
Старый 11.10.2020, 10:27   #8
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,830
Написано 2,199 полезных сообщений
(для 5,121 пользователей)
Ответ: Вопросы

Что такое Mesh Texture?
Почитал поискал, ничего не понял.
Что это и как правильно "готовить"?

Думал могу свой меш в WorldEnvironment загрузить как небо, оказалось все не так.

Что вообще можно засунуть в стандартное небо, по мимо карты окружения?
(Offline)
 
Ответить с цитированием
Старый 11.10.2020, 15:29   #9
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 804
Написано 303 полезных сообщений
(для 783 пользователей)
Ответ: Вопросы

Сообщение от Arton Посмотреть сообщение
Что такое Mesh Texture?
Почитал поискал, ничего не понял.
Что это и как правильно "готовить"?
Единственное практическое применение для него которое мне известно это TextureAtlas
При создании атласа можно выбрать Mesh2D

И тогда текстуры будут храниться как Mesh2D. А для чего нужен Mesh2D, я думаю понятно.



Сообщение от Arton Посмотреть сообщение
Что вообще можно засунуть в стандартное небо, по мимо карты окружения?
А какую задачу ты решаешь? Что хочешь получить?
Изображения
Тип файла: jpg atlas.jpg (11.5 Кб, 91 просмотров)
Тип файла: jpg mesh2d.jpg (54.2 Кб, 91 просмотров)
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arton (12.10.2020)
Старый 12.10.2020, 00:37   #10
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,830
Написано 2,199 полезных сообщений
(для 5,121 пользователей)
Ответ: Вопросы

Сообщение от ant0N Посмотреть сообщение
Единственное практическое применение для него которое мне известно это TextureAtlas
При создании атласа можно выбрать Mesh2D
Понятно, спасибо.

Сообщение от ant0N Посмотреть сообщение
А какую задачу ты решаешь? Что хочешь получить?
«Небо», когда окружение локации, домики, горы вдали делают одним мешем и ставят ему ордер рендера первым.

Но с порядком рендера, в Годо проблемы.

Обычный флаг No Depth Test годится только для простой геометрии.
Всё что сложнее куба/сферы начинает просвечивать сквозь себя.
Название: Bug_Mesh_No_Depth_Test.jpg
Просмотров: 155

Размер: 52.7 Кб


Альтернатива, использовать флаг прозрачности, у них своя сортировка.
Но с прозрачностью могут не работать некоторые эффекты.

И в добавок, в обоих случаях надо не забывать проставлять флаги каждому материалу участвующему в сцене, иначе не будет работать.

WorldEnvironment видимо отдельно обрабатывается, думал к нему не только текстуру можно подключить.

Но ладно, чёрт с ним с небом, не так важно, а если мне нужно в FPS что-то поверх рендерить принципиально?

Слишком заморочено.
С грустью вспоминаю Блиц, с его EntityOrder.

Ещё я читал предложения рендерить в спрайт, рендерить с поддельной глубиной...

P. S. Где можно достать скомпилированный Godot 4? А то я только на исходники натыкаюсь, хочу потыкать его.

P. P. S. Кстати, как полная альтернатива (только для окружения), можно всё рендерить в текстуру и натягивать на небо.
Давно видел способ для псевдо-2D персонажа, по логике тут тоже самое.
(Offline)
 
Ответить с цитированием
Старый 12.10.2020, 12:05   #11
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 804
Написано 303 полезных сообщений
(для 783 пользователей)
Ответ: Вопросы

Сообщение от Arton Посмотреть сообщение
«Небо», когда окружение локации, домики, горы вдали делают одним мешем и ставят ему ордер рендера первым.
Как вариант можно поставить материалу флаг "Fixed Size". Вроде это то что тебе нужно.

Сообщение от Arton Посмотреть сообщение
С грустью вспоминаю Блиц, с его EntityOrder.
Да, прошли те времена. Игры стали сложнее, движки должны не отставать.

Сообщение от Arton Посмотреть сообщение
P. S. Где можно достать скомпилированный Godot 4? А то я только на исходники натыкаюсь, хочу потыкать его.
Вот "ночные сборки" от чувака, который на днях перешел в штат разработчиков годо
https://hugo.pro/projects/godot-builds/
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arton (12.10.2020)
Старый 16.10.2020, 09:54   #12
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 162
Написано 96 полезных сообщений
(для 386 пользователей)
Ответ: Вопросы

Всем привет!
Делаю генератор планет,
Нужен совет.

Короче есть программно рисуемая картинка при помощи следующего кода
WorldMapImage.lock()
...
WorldMapImage.set_pixel(TileX, TileY, DrawColor)
...
WorldMapImage.unlock()
Как сверху на эту картинку нарисовать другую, с выбранной прозрачностью? (например, полностью непрозрачно или еле-еле видно)

Рассматриваю вариант - сверху создать еще один гаждет и рисовать облака тупо поверх, но хотелось бы узнать, как рисовать картинку на картинку


Изображения
Тип файла: png screen.png (182.4 Кб, 47 просмотров)
Тип файла: png clouds.png (151.9 Кб, 53 просмотров)
(Offline)
 
Ответить с цитированием
Старый 16.10.2020, 14:25   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,550
Написано 2,991 полезных сообщений
(для 5,297 пользователей)
Ответ: Вопросы

Если есть функция get_pixel, то можно использовать классическую функцию смешивания по альфе:

Result = CurrentColor * (1 - Alpha) + NewColor * Alpha

где CurrentColor - текущий цвет пикселя текстуры
NewColor - цвет рисуемого пикселя
Alpha - прозрачность рисуемого пикселя

Функцию применить для каждого компонента цвета ( RGB ):

ResultR = CurrentColorR * (1 - Alpha) + NewColorR * Alpha
ResultG = CurrentColorG * (1 - Alpha) + NewColorG * Alpha
ResultB = CurrentColorB * (1 - Alpha) + NewColorB * Alpha

Если смешивание идет в целых числах (0..255), то единицу заменить на 255
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
ant0N (16.10.2020), MadMedic (16.10.2020), St_AnGer (16.10.2020)
Старый 16.10.2020, 17:38   #14
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 162
Написано 96 полезных сообщений
(для 386 пользователей)
Ответ: Вопросы

Сообщение от pax Посмотреть сообщение
Если есть функция get_pixel, то можно использовать классическую функцию смешивания по альфе:
...
Как вариант, и очень даже неплохой для данной ситуации, да, спасибо!
Но есть наверняка элегантный способ рисовать картинками на картинках.
(Offline)
 
Ответить с цитированием
Старый 16.10.2020, 22:25   #15
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,550
Написано 2,991 полезных сообщений
(для 5,297 пользователей)
Ответ: Вопросы

Сообщение от MadMedic Посмотреть сообщение
Как вариант, и очень даже неплохой для данной ситуации, да, спасибо!
Но есть наверняка элегантный способ рисовать картинками на картинках.
На любом движке наверное можно такое сделать:
1. Сделать рендертекстуру размером с исходную.
2. Сделать ее активным рендер таргетом.
3. Нарисовать полноэкранный квад с исходной текстурой с unlit шейдером. Обычно есть метод Blit или подобный.
4. Нарисовать квад с оверлей текстурой и нужным смешиванием (для этого сделать шейдер с альфаблендом или другим способом смешивания).
5. Считать пиксели рендертекстуры в исходную.

Но так как задача поставлена с примером записи пикселей в текстуру, я предложил другой метод.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MadMedic (16.10.2020)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:23.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com