Skip to content

AndreyNaydenov/2DNoname

Repository files navigation

2DNoname

Ez gamedev


НАЧАЛО

Чтобы открыть проект в редакторе GODOT, импортируйте файл project.godot

Что сделано:

  1. Созданы сцены главного меню(title.tscn), основная сцена магазина(main_ingame_scene.tscn) и склада(stock.tscn), а также много других доп. сцен.
  2. Написаны скрипты для подгрузки текстур на узлы. Это сделано для удобства замены текстур, в случае их перерисовки. (если в редакторе на некоторых узлах не отображаются текстурки, это значит, что они подгружаются из скрипта)
  3. Некоторые кнопки уже работают, например NewGame, quit, а также кнопка меню в игре(ящик с инструментами под столом) и кнопка склада.
  4. Проект разделен на папки: сцены, текстуры, скрипты, и т.д. думаю разберетесь.

v 0.1

  1. Изменил сцену магазина.
  2. Раскидал текстурки по папкам.
  3. Создал главную сцену main_scene.tscn. В ней есть узел GlobalScripts, на которм будут висеть все глобальные скрипты.
  4. Создал 1 глобальный скрипт ScеneManager. В нем создал функцию смены сцены. !!!Чтобы менять сцены пользуйтесь только ей!!!

v0.1.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 - вся инфа ГГ (пока только имя)
  2. Написал класс Window, который должен наследоваться любым внутрииговым окном. Этот класс обрабатывает перемещение окна мышкой и закрытие окна. (Любое окно, наследующее Window, должно иметь кнопку с именем "CloseButton")

  3. Сделал диалоговое окно. (подробно его работу расписывать не буду) Суть диалогового окна:

    • Окно берет реплики и опции ответа из папки Dialogs.
    • В ней 2 подпапки individual и class: indiviudal - диалоги отдельных персонажей. class - классовые диалоги.
    • Окно вызывается кликом на НПС и, оновываясь на его имени, выбирает нужный диалог. Сначала ищет в папке individual, затем в class.
    • Окно всегда начинает диалог с диалогового файла greet, поэтому в папке диалога всегда должен быть этот файл.
  4. Диалоговые файлы. Суть их такова: в них мы указывам реплики, которые будет отображаться в диалоге и названия диалоговых файлов, в которых есть следующие реплики. Подробнее про то, как жиалоговые файлы работают смотри в "Пример диалогового файла.txt"

  5. НПС можно вызвать в любой сцене, нажав на Z. (Временно.Для проверки диалогов)


v0.1.2

  1. Написал класс и создал сцену Inventory. В классе есть метод SetInventory(strName, sizeVec2) - устанавливает имя инвентаря и его размер Vector2(кол-во столбцов, кол-во строк), он обязательно должен быть вызвана после вызова сцены. Пример использования инвентарей в StockUI.gd и ShopButtons.gd.
  2. Предметы добавляются в инвентарь с помощью методов AddItem(имя предмета, НомерЯчейки(с 0-ля)) - в определенную ячейку, и AddItemToFreeCell(имя предмета, НомерЯчейки) - в первую свободную ячейку, начиная с указанной.
  3. Предметы в инвентаре перетаскиваются. Если перетащить предмет на другой, то они поменяются местами если оба предмета в одном инвентаре, иначе предмет добавится в 1-ю свободную ячейку.
  4. Добавил кнопку вызова инвентаря ГГ - такая коричневая хрень внизу(в сценах магазина и склада).
  5. Добавил вызов инвентаря полок на складе.
  6. Ну и сделал еще 1 глобальный класс JsonManager - для обработки "баз данных" предметов Json. Одна из таких "баз" (Databases/ItemsDatabase) содержит 3 предмета - консервы, водка, пистолет =). Добавляйте новые!
  • PS. НПС все еще можно вызвать на Z.

Releases

No releases published

Packages

No packages published