Однооконный интерфейс — различия между версиями

(Одно-оконный Интерфейс)
м (Одно-оконный Интерфейс)
 
(не показаны 2 промежуточные версии этого же участника)
Строка 2: Строка 2:
 
Одно-оконный интерфейс используется для наэкранных кнопок или для совершенно пустого интерфейса.
 
Одно-оконный интерфейс используется для наэкранных кнопок или для совершенно пустого интерфейса.
 
Отличие одно-оконного интерфейса от стандартного является в поддержке прокрутки интерфейса, изменении его ширины и высоты, задание его как игровой оверлэй(не мешает тапам вне интерфейса).
 
Отличие одно-оконного интерфейса от стандартного является в поддержке прокрутки интерфейса, изменении его ширины и высоты, задание его как игровой оверлэй(не мешает тапам вне интерфейса).
 
Размеры элементов могут меняться также как и их положение.
 
Например:
 
<syntaxhighlight lang="Javascript">location: {
 
    width: 120,
 
    height: 120
 
},
 
elements: {
 
    "element1": {type: "button", x: 0, y: 0},
 
    "element2": {type: "button", x: 0, y: 1000},
 
    "element3": {type: "button", x: 1000/2, y: 0},
 
}</syntaxhighlight>
 
высота следующего элемента после первого будет = 1000
 
но если говорить про положение по длине то стоит отметить что каждые 60 юнитов, нужно принять как 1000/положение элементав длину, т.к ширина созданного окна делиться на 1000, именно окно а не весь экран.
 
  
 
Объект описания и открытие одно-оконного интерфейса:
 
Объект описания и открытие одно-оконного интерфейса:
Строка 32: Строка 18:
 
     drawing: [/* элементы отрисовки фона */],
 
     drawing: [/* элементы отрисовки фона */],
 
     elements: {/* описание элементов */}
 
     elements: {/* описание элементов */}
}
+
}</syntaxhighlight>Открытие окна<syntaxhighlight lang="Javascript">
 
var testUiScreen = new UI.Window({/* ... объект описания ... */});
 
var testUiScreen = new UI.Window({/* ... объект описания ... */});
 
var container = new UI.Container();
 
var container = new UI.Container();
Строка 38: Строка 24:
 
container.openAs(testUiScreen); // откроет интерфейс
 
container.openAs(testUiScreen); // откроет интерфейс
 
var content = testUiScreen.content; // получение описания интерфейса для дальнейших манипуляций</syntaxhighlight>
 
var content = testUiScreen.content; // получение описания интерфейса для дальнейших манипуляций</syntaxhighlight>
 +
Особенности/баги:
 +
Размеры элементов могут меняться также как и их положение.
 +
Например:
 +
<syntaxhighlight lang="Javascript">location: {
 +
    width: 120,
 +
    height: 120
 +
},
 +
elements: {
 +
    "element1": {type: "button", x: 0, y: 0},
 +
    "element2": {type: "button", x: 0, y: 1000},
 +
    "element3": {type: "button", x: 1000/2, y: 0},
 +
}</syntaxhighlight>
 +
Высота следующего элемента после первого будет = 1000, но если говорить про положение по длине то стоит отметить, что каждые 60 юнитов, нужно принять как 1000/положение элемента в длину, т.к ширина созданного окна делиться на 1000, именно окно а не весь экран.

Текущая версия на 18:34, 14 августа 2019

Одно-оконный Интерфейс[править]

Одно-оконный интерфейс используется для наэкранных кнопок или для совершенно пустого интерфейса. Отличие одно-оконного интерфейса от стандартного является в поддержке прокрутки интерфейса, изменении его ширины и высоты, задание его как игровой оверлэй(не мешает тапам вне интерфейса).

Объект описания и открытие одно-оконного интерфейса:

{
     location: {
          x: число, // перемещение по горизонтали
          y: число, // перемещение по вертикали
          width: число, // ширина окна интерфейса
          height: число, // высота окна интерфейса
          scrollWidth: число, // ширина скролла внутри окна
          scrollHeight: число, // высота скролла внутри окна
     },
     params: {
          // стилизация (изменение стандартных текстур)
     },
     drawing: [/* элементы отрисовки фона */],
     elements: {/* описание элементов */}
}
Открытие окна
var testUiScreen = new UI.Window({/* ... объект описания ... */});
var container = new UI.Container();
testUiScreen.setAsGameOverlay(true); //сделайет интерфейс как игровой оверлэй.
container.openAs(testUiScreen); // откроет интерфейс
var content = testUiScreen.content; // получение описания интерфейса для дальнейших манипуляций

Особенности/баги: Размеры элементов могут меняться также как и их положение. Например:

location: {
     width: 120,
     height: 120
},
elements: {
     "element1": {type: "button", x: 0, y: 0},
     "element2": {type: "button", x: 0, y: 1000}, 
     "element3": {type: "button", x: 1000/2, y: 0},
}

Высота следующего элемента после первого будет = 1000, но если говорить про положение по длине то стоит отметить, что каждые 60 юнитов, нужно принять как 1000/положение элемента в длину, т.к ширина созданного окна делиться на 1000, именно окно а не весь экран.