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, чтобы выключить.