Skip to content

How to make window?

Alexandr edited this page Aug 10, 2020 · 2 revisions

Внимание! Информация устарела!

Как создать новое окно?

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 выведет в виде строки все что получит)