-
Notifications
You must be signed in to change notification settings - Fork 0
How to make window?
AbyssEngine построен так, что все что находится на экране, принадлежит к камому либо окну. Окна это объекты, которые имеют свою сетку с глубиной, свой скрипт логики, свои виджеты и т.п. Для создания окна еобходимо создать класс:
class NewWindow:Window{
}
Каждое окно должно зависеть от класса Window
.
В класс нового окна следует добавить конструктор такого типа:
public <класс>(Vector position):base(position){}
Затем следует инициализировать его. Добавим переопределяемые методы:
protected Initialization(){}//выполняется при создании окна
protected PostInitialization(){}//выполняется после создания окна
protected Update(){}//выполняется каждый тик
Initialization()
нужен для инициализации базовых компонентов окна. В нем должны быть инициализированны следующие поля:
logic
transform.scale
PostInitialization()
предназначен для инициализации пользовательских полей или добавления виджетов
Update()
остается под вопросом и вскоре может исчезнуть из списка доступных методов
Для добавления на окно виджета (текст и т.п.):
AddMenu(<имя>, new <тип>(<вектор положения>, <вектор размера>), <входные данные>); //добавить виджет как пункт меню
AddWidget(<имя>, new <тип>(<вектор положения>, <вектор размера>), <входные данные>); //добавить виджет
имя
- имя виджета для идентификации и обращения к виджету
тип
- тип виджета (сейчас есть TextBox)
вектор положения
- позиция виджета на окне (пример new Vector(x,y)
)
вектор размера
- размер виджета на окне (пример new Vector(x,y)
)
входные данные
- данные которые вносятся в виджет если они необходимы (к примеру TextBox выведет в виде строки все что получит)