Ez gamedev
НАЧАЛО
Чтобы открыть проект в редакторе GODOT, импортируйте файл project.godot
Что сделано:
- Созданы сцены главного меню(title.tscn), основная сцена магазина(main_ingame_scene.tscn) и склада(stock.tscn), а также много других доп. сцен.
- Написаны скрипты для подгрузки текстур на узлы. Это сделано для удобства замены текстур, в случае их перерисовки. (если в редакторе на некоторых узлах не отображаются текстурки, это значит, что они подгружаются из скрипта)
- Некоторые кнопки уже работают, например NewGame, quit, а также кнопка меню в игре(ящик с инструментами под столом) и кнопка склада.
- Проект разделен на папки: сцены, текстуры, скрипты, и т.д. думаю разберетесь.
v 0.1
- Изменил сцену магазина.
- Раскидал текстурки по папкам.
- Создал главную сцену main_scene.tscn. В ней есть узел GlobalScripts, на которм будут висеть все глобальные скрипты.
- Создал 1 глобальный скрипт ScеneManager. В нем создал функцию смены сцены. !!!Чтобы менять сцены пользуйтесь только ей!!!
v0.1.1.
-
Добавил автозагружающиеся, существующие на протяжении всей игры скрипты. [Подробнее] http://docs.godotengine.org/en/3.0/getting_started/step_by_step/singletons_autoload.html) WindowsInfo, SceneManager, MainCharacter находяся в папке GlobalScripts.
- WindowsInfo - информация об окнах в игре (пока что только 1 окно - диалоговое).
- SceneManager - служит для переключения сцен в игре (метод ChangeScene()) и для выхода в гланое меню (метод QuitToTitle())
- MainCharacter - вся инфа ГГ (пока только имя)
-
Написал класс Window, который должен наследоваться любым внутрииговым окном. Этот класс обрабатывает перемещение окна мышкой и закрытие окна. (Любое окно, наследующее Window, должно иметь кнопку с именем "CloseButton")
-
Сделал диалоговое окно. (подробно его работу расписывать не буду) Суть диалогового окна:
- Окно берет реплики и опции ответа из папки Dialogs.
- В ней 2 подпапки individual и class: indiviudal - диалоги отдельных персонажей. class - классовые диалоги.
- Окно вызывается кликом на НПС и, оновываясь на его имени, выбирает нужный диалог. Сначала ищет в папке individual, затем в class.
- Окно всегда начинает диалог с диалогового файла greet, поэтому в папке диалога всегда должен быть этот файл.
-
Диалоговые файлы. Суть их такова: в них мы указывам реплики, которые будет отображаться в диалоге и названия диалоговых файлов, в которых есть следующие реплики. Подробнее про то, как жиалоговые файлы работают смотри в "Пример диалогового файла.txt"
-
НПС можно вызвать в любой сцене, нажав на Z. (Временно.Для проверки диалогов)
v0.1.2
- Написал класс и создал сцену Inventory. В классе есть метод SetInventory(strName, sizeVec2) - устанавливает имя инвентаря и его размер Vector2(кол-во столбцов, кол-во строк), он обязательно должен быть вызвана после вызова сцены. Пример использования инвентарей в StockUI.gd и ShopButtons.gd.
- Предметы добавляются в инвентарь с помощью методов AddItem(имя предмета, НомерЯчейки(с 0-ля)) - в определенную ячейку, и AddItemToFreeCell(имя предмета, НомерЯчейки) - в первую свободную ячейку, начиная с указанной.
- Предметы в инвентаре перетаскиваются. Если перетащить предмет на другой, то они поменяются местами если оба предмета в одном инвентаре, иначе предмет добавится в 1-ю свободную ячейку.
- Добавил кнопку вызова инвентаря ГГ - такая коричневая хрень внизу(в сценах магазина и склада).
- Добавил вызов инвентаря полок на складе.
- Ну и сделал еще 1 глобальный класс JsonManager - для обработки "баз данных" предметов Json. Одна из таких "баз" (Databases/ItemsDatabase) содержит 3 предмета - консервы, водка, пистолет =). Добавляйте новые!
- PS. НПС все еще можно вызвать на Z.