Перейти к основному содержимому

Display

Дисплей это как монитор, но в Scrap Mechanic. Позволяет вам отрисовать что-угодно, используя компьютер.

По поводу производительности

Дисплей это единственный компонент, который может вызвать кучу лагов! Поскольку единственный способ рендеринга пикселей — это эффекты, слишком много эффектов означает большую задержку. Хотя оптимизация у нас очень хорошая. Мы предлагаем сделать любую графику на нашем дисплее простой или не использовать множество цветов.

Использование большого количества цветов снизит производительность вашей игры даже после оптимизации!


Структуры

TouchData

Она содержит информацию о взаимодействии пользователя с дисплеем, или же "нажатии на дислпей"

Поля

  • x [ number ] X координата нажатия.
  • y [ number ] Y координата нажатия.
  • state [ 1|2|3 ] Состояние нажатия. 1 - только нажал, 2 - держит, 3 - отпустил.

PixelTable

Информация о пикселе, который вы хотите отрисовать, что-то вроде инструкции.


x = 1, -- X координата пикселя
y = 1, -- Y координата пикселя

color = sm.color.new("ff0000") -- Цвет пикселя
}

Эта отрисует пиксель 1x1 на координатах (1, 1).


Функции

drawPixel

Display.drawPixel( x, y, color )

Рисует один пиксель на заданных координатах и цветом.

Аргументы:

  • x [ number ] X координата пикселя.
  • y [ number ] Y координата пикселя.
  • color [ Color|string ] Цвет пикселя в шестнадцатеричном представлении.

drawFromTable

Display.drawFromTable( tbl )

Рисует фигуры и текст, основываясь на предоставленной таблице.

Аргументы:

  • tbl [ PixelTable[] ] Все инструкции для выполнения

clear

Display.clear( color )

Очищает дисплей заданным цветом.

Аргументы:

  • color [ Color|string ] Цвет в шестнадцатеричном формате для заливки экрана. (Если nil, то очистит стандартным цветом)

drawLine

Display.drawLine( x, y, x1, y1, color )

Рисует линию между двумя точками заданным цветом.

Аргументы:

  • x [ number ] X координата первой точки.
  • y [ number ] Y координата первой точки.
  • x1 [ number ] X координата второй точки.
  • y1 [ number ] Y координата второй точки.
  • color [ Color|string ] Цвет линии в шестнадцатеричном формате.

drawCircle

Display.drawCircle( x, y, radius, color )

Рисует окружность с центром в заданной точке, радиусом и цветом.

Аргументы:

  • x [ number ] X координата центра окружности.
  • y [ number ] Y координата центра окружности.
  • radius [ number ] Радиус окружности.
  • color [ Color|string ] Цвет круга в шестнадцатеричном формате.

drawFilledCircle

Display.drawFilledCircle( x, y, radius, color )

Рисует залитую окружность с центром в заданной точке, радиусом и цветом.

Аргументы:

  • x [ number ] X координата центра окружности.
  • y [ number ] Y координата центра окружности.
  • radius [ number ] Радиус окружности.
  • color [ Color|string ] Цвет круга в шестнадцатеричном формате.

drawTriangle

Display.drawTriangle( x1, y1, x2, y2, x3, y3, color )

Рисует треугольник с заданными вершинами и цветом. Аргументы:

  • x1 [ number ] X координата первой вершины.
  • y1 [ number ] Y координата первой вершины.
  • x2 [ number ] X координата второй вершины.
  • y2 [ number ] Y координата второй вершины.
  • x3 [ number ] X координата третей вершины.
  • y3 [ number ] Y координата третей вершины.
  • color [ Color|string ] Цвет треугольника в шестнадцатеричном формате.

drawFilledTriangle

Display.drawFilledTriangle( x1, y1, x2, y2, x3, y3, color )

Рисует залитый треугольник с заданными вершинами и цветом. Аргументы:

  • x1 [ number ] X координата первой вершины.
  • y1 [ number ] Y координата первой вершины.
  • x2 [ number ] X координата второй вершины.
  • y2 [ number ] Y координата второй вершины.
  • x3 [ number ] X координата третей вершины.
  • y3 [ number ] Y координата третей вершины.
  • color [ Color|string ] Цвет треугольника в шестнадцатеричном формате.

drawRect

Display.drawRect( x, y, width, height, color )

Рисует прямоугольник на заданных координатах, с заданной шириной, высотой и цветом.

Аргументы:

  • x [ number ] X координата верхнего левого угла.
  • y [ number ] Y координата верхнего левого угла.
  • width [ number ] Ширина прямоугольника.
  • height [ number ] Высота прямоугольника.
  • color [ Color|string ] Цвет треугольника в шестнадцатеричном формате.

drawFilledRect

Display.drawFilledRect( x, y, width, height, color )

Рисует залитый прямоугольник на заданных координатах, с заданной шириной, высотой и цветом.

Аргументы:

  • x [ number ] X координата верхнего левого угла.
  • y [ number ] Y координата верхнего левого угла.
  • width [ number ] Ширина прямоугольника.
  • height [ number ] Высота прямоугольника.
  • color [ Color|string ] Цвет треугольника в шестнадцатеричном формате.

drawText

Display.drawText( x, y, string, color, fontName )

Рисует текст на заданных координатах и цветом.

  • x [ number ] X координата текста.
  • y [ number ] Y координата текста.
  • string [ string ] Текст.
  • color [ Color|string ] Цвет текста в шестнадцатеричном формате.
  • fontName [ string? ] Шрифт. (по умолчанию стандартных шрифт, который использует FontManager)

optimize

Display.optimize()

Эта функция ещё больше оптимизирует дисплей!

По поводу производительности

Она предназначена для вызова только в том случае, если вы не планируете обновлять дисплей в течение длительного времени. Используйте её, когда дисплей обычно будет статичным.


getDimensions

Display.getDimensions()

Получает размеры дисплея.

Возвращает:

  • [ number ] Ширина дисплея
  • [ number ] Высота дисплея

hide

Display.hide()

Прячет дисплей.


show

Display.show()

Отображает дисплей.


setRenderDistance

Display.setRenderDistance( distance )

Устанавливает дистанцию отрисовки дисплея.

Аргументы:

  • distance [ number ] Дистанция для отрисовки.

enableTouchScreen

Display.enableTouchScreen( bool )

Включает или выключает возможности сенсорного экрана.

Аргументы:

  • bool [ boolean ] True, чтобы включить, false, чтобы выключить.

getTouchData

Display.getTouchData()

Получает информацию о нажатиях на сенсорный экран.

Возвращает:

  • [ TouchData ] Таблица с информацией о нажатиях.

update

Display.update()

Обновляет дисплей.


autoUpdate

Display.autoUpdate( bool )

Эта функция включает автоматическое обновление дисплея.

По поводу производительности

Если вы, скажем, нарисуете много вещей, таких как прямоугольники, текст и т. д., с включенной этой функцией, то ваша игра будет сильно лагать! А сеть будет засыпана запросами!

Поэтому, пожалуйста, используйте только в том случае, если вы не собираетесь много рисовать и ваш дисплей не часто обновляется!

Аргументы:

  • bool [ boolean ] True, чтобы включить автообновление, false, чтобы выключить.

setOptimizationThreshold

Display.setOptimizationThreshold( int )

Эта функция устанавливает порог оптимизации дисплея. Наши дисплеи оптимизируют количество эффектов, группируя пиксели одинакового цвета в один более крупный эффект. Целое число (в диапазоне от 0 до 1) определяет, насколько похожими должны быть цвета соседних пикселей: 0 требует, чтобы они имели точно такое же значение RGB, а 1 допускает любое значение RGB.

Аргументы:

  • int [ number ] Порог оптимизации.

calcTextSize

Display.calcTextSize( text )

Рассчитывает размер текстового поля

Аргументы:

  • text [ string ] Текст, размер которого нужно рассчитать.

Возвращает:

  • [ number ] Ширина текста
  • [ number ] Высота текста

setMaxBuffer

Display.setMaxBuffer( int )

Устанавливает максимальное количество итераций, которые может выполнять буфер отрисовки за тик.

Аргументы:

  • int [ number ] Новый размер буфера.
Внимание!

Функция устарела


getId

Display.getId()

Возвращает ID Shape дисплея.

Возвращает:

  • [ number ] Shape ID.

getOptimizationThreshold

Display.getOptimizationThreshold()

Возвращает порог оптимизации дисплея.

Возвращает:

  • [ number ] Порог оптимизации дисплея.