love.graphics
Основная задача модуля love.graphics — отрисовка линий, фигур, текста, изображений и других рисуемых объектов на экране. Вспомогательные задачи включают загрузку внешних файлов (включая изображения и шрифты) в память, создание специализированных объектов (таких как системы частиц или полотна) и управление геометрией экрана.
Система координат LÖVE основана на верхнем левом углу экрана, который находится в точке (0, 0). Ось X — горизонтальная: большие значения находятся дальше вправо. Ось Y — вертикальная: большие значения находятся дальше вниз. Стоит отметить, что точка (0, 0) совпадает с верхним левым углом пикселя, что может привести к проблемам «смещения на один пиксель» при отрисовке линий шириной в 1 пиксель. Можно попытаться выровнять систему координат по центру пикселей, а не по их верхнему левому углу. Для этого передавайте x+0.5 и y+0.5 или используйте love.graphics.translate().
Во многих случаях вы рисуете изображения или фигуры, ориентируясь на их верхний левый угол (см. рисунок выше).
Примечание об углах в LÖVE: Углы выражаются в радианах, значения в диапазоне от 0 до 2Π (приблизительно 6.28). Возможно, вам привычнее работать в градусах. Из-за того, как настроена система координат, с началом в верхнем левом углу, углы в LÖVE могут показаться немного нестандартными: 0 — указывает направо (по оси X), ¼Π — на диагональ вниз и вправо, ½Π — прямо вниз (по оси Y), а возрастающие значения продолжаются по часовой стрелке.
Многие функции используются для манипулирования графической системой координат, которая по сути определяет, как координаты отображаются на экране. Таким образом, можно изменить положение, масштаб и даже поворот.
Типы
| Полотно | Целевое устройство для рендеринга вне экрана. | 0.8.0 | |
| Рисуемый объект | Базовый класс для всех элементов, которые можно отобразить на экране. | ||
| Шрифт | Определяет форму символов, которые можно отобразить на экране. | ||
| Буфер кадра | Целевое устройство для рендеринга вне экрана. | 0.7.0 | 0.8.0 |
| Изображение | Тип изображения, которое можно отобразить. | ||
| Полигональная сетка | Двумерная полигональная сетка, используемая для отрисовки произвольных текстурированных фигур. | 0.9.0 | |
| Система частиц | Используется для создания эффектов, таких как огонь. | ||
| Эффект пикселей | Эффект шейдера пикселей. | 0.8.0 | 0.9.0 |
| Квадрат | Четырехугольник с информацией о координатах текстуры. | ||
| Шейдер | Эффект шейдера. | 0.9.0 | |
| Пачка спрайтов | Хранит позиции изображений в буфере и рисует их одним вызовом. | ||
| Текст | Отображаемый текст. | 0.10.0 | |
| Текстура | Базовый класс для отображаемых объектов, представляющих текстуру. | 0.9.1 | |
| Видео | Отображаемое видео. | 0.10.0 |
Функции
Отрисовка
| love.graphics.arc | Рисует дугу. | 0.8.0 | |
| love.graphics.circle | Рисует окружность. | ||
| love.graphics.clear | Очищает экран или активное полотно до указанного цвета. | ||
| love.graphics.discard | Отбрасывает содержимое экрана или активного полотна. | 0.10.0 | |
| love.graphics.draw | Отображает объекты на экране. | ||
| love.graphics.drawInstanced | Отображает множество экземпляров сетки с помощью одного вызова отрисовки, используя аппаратную инстанцирование геометрии. | 11.0 | |
| love.graphics.drawLayer | Рисует слой текстуры массива. | 11.0 | |
| love.graphics.drawq | Отобразить квадрат с указанным изображением на экране. | 0.9.0 | |
| love.graphics.ellipse | Рисует эллипс. | 0.10.0 | |
| love.graphics.flushBatch | Немедленно рендерит любые ожидающие автоматически сгруппированные отрисовки. | 11.0 | |
| love.graphics.line | Рисует линии между точками. | ||
| love.graphics.point | Рисует точку. | 0.10.0 | |
| love.graphics.points | Отображает одну или несколько точек. | 0.10.0 | |
| love.graphics.polygon | Рисует многоугольник. | 0.4.0 | |
| love.graphics.present | Отображает результаты операций рисования на экране. | ||
| love.graphics.print | Отображает текст на экране. Если шрифт не задан, он будет создан и установлен (один раз), если необходимо. | ||
| love.graphics.printf | Отображает форматированный текст с обёрткой по словам и выравниванием. | ||
| love.graphics.quad | Рисует четырёхугольник. | 0.9.0 | |
| love.graphics.rectangle | Рисует прямоугольник. | 0.3.2 | |
| love.graphics.stencil | Рисует геометрию в качестве трафарета. | 0.10.0 | |
| love.graphics.triangle | Рисует треугольник. | 0.9.0 |
Создание объектов
Состояние графики
| love.graphics.getBackgroundColor | Получает текущий цвет фона. | ||
| love.graphics.getBlendMode | Получает режим смешивания. | 0.2.0 | |
| love.graphics.getCanvas | Возвращает текущую целевую область Canvas. | 0.8.0 | |
| love.graphics.getColor | Получает текущий цвет. | ||
| love.graphics.getColorMask | Получает активные цветовые компоненты, используемые при отрисовке. | 0.9.0 | |
| love.graphics.getColorMode | Получает режим цвета (который управляет тем, как изображения влияют на текущий цвет). | 0.2.0 | 0.9.0 |
| love.graphics.getDefaultFilter | Возвращает значения по умолчанию для масштабирования фильтров, используемых с Изображениями, Областями и Шрифтами. | 0.9.0 | |
| love.graphics.getDefaultImageFilter | Возвращает значения по умолчанию для масштабирования фильтров. | 0.8.0 | 0.9.0 |
| love.graphics.getDepthMode | Получает текущий режим проверки глубины и включение записи в буфер глубины. | 11.0 | |
| love.graphics.getFont | Получает текущий объект шрифта. | 0.9.0 | |
| love.graphics.getFrontFaceWinding | Получает информацию о том, считаются ли треугольники с часовой или против часовой стрелки направленными вперёд. | 11.0 | |
| love.graphics.getLineJoin | Получает стиль соединения линий. | ||
| love.graphics.getLineStipple | Получает текущую пунктирную линию. | 0.8.0 | |
| love.graphics.getLineStyle | Получает стиль линии. | 0.3.2 | |
| love.graphics.getLineWidth | Получает текущую ширину линии. | 0.3.2 | |
| love.graphics.getMeshCullMode | Получает информацию о том, обрезаются ли обращенные назад треугольники в сетке. | 11.0 | |
| love.graphics.getPixelEffect | Возвращает текущий эффект пикселей. | 0.8.0 | 0.9.0 |
| love.graphics.getPointSize | Получает размер точки. | ||
| love.graphics.getPointStyle | Получает текущий стиль точки. | 0.10.0 | |
| love.graphics.getScissor | Получает текущую область обрезки. | 0.4.0 | |
| love.graphics.getShader | Получает текущий шейдер. | 0.9.0 | |
| love.graphics.getStackDepth | Получает текущую глубину стека преобразований/состояний (количество вложенных элементов без соответствующих вызовов pop). | 11.0 | |
| love.graphics.getStencilTest | Получает текущую конфигурацию проверки текстуры. | 0.10.0 | |
| love.graphics.intersectScissor | Устанавливает область обрезки в прямоугольник, созданный пересечением заданного прямоугольника с существующей областью обрезки. | 0.10.0 | |
| love.graphics.isActive | Получает информацию о том, доступен ли модуль графики для использования. | 0.10.0 | |
| love.graphics.isGammaCorrect | Получает информацию о включении гамма-коррекции. | 0.10.0 | |
| love.graphics.isSupported | Проверяет совместимость графических функций. | 0.8.0 | 0.10.0 |
| love.graphics.isWireframe | Получает информацию о том, используется ли режим каркаса при отрисовке. | 0.9.1 | |
| love.graphics.reset | Сбрасывает текущие графические настройки. | ||
| love.graphics.setBackgroundColor | Устанавливает цвет фона. | ||
| love.graphics.setBlendMode | Устанавливает режим смешивания. | 0.2.0 | |
| love.graphics.setCanvas | Направляет операции рисования на область. | 0.8.0 | |
| love.graphics.setColor | Устанавливает цвет для рисования. | ||
| love.graphics.setColorMask | Устанавливает маску цвета. Включает или отключает определённые цветовые компоненты при отрисовке. | 0.9.0 | |
| love.graphics.setColorMode | Устанавливает режим цвета (который управляет тем, как изображения влияют на текущий цвет). | 0.2.0 | 0.9.0 |
| love.graphics.setDefaultFilter | Устанавливает значения по умолчанию для масштабирования фильтров, используемых с изображениями, областями и шрифтами. | 0.9.0 | |
| love.graphics.setDefaultImageFilter | Устанавливает значения по умолчанию для масштабирования фильтров. | 0.8.0 | 0.9.0 |
| love.graphics.setDepthMode | Конфигурирует проверку глубины и запись в буфер глубины. | 11.0 | |
| love.graphics.setFont | Устанавливает загруженный шрифт как текущий. | ||
| love.graphics.setFrontFaceWinding | Устанавливает, считаются ли треугольники с часовой или против часовой стрелки направленными вперёд. | 11.0 | |
| love.graphics.setInvertedStencil | Определяет инвертированную текстуру. | 0.8.0 | 0.10.0 |
| love.graphics.setLine | Устанавливает ширину и стиль линии. | 0.9.0 | |
| love.graphics.setLineJoin | Устанавливает стиль соединения линий. | ||
| love.graphics.setLineStipple | Устанавливает узор пунктирной линии. | 0.8.0 | |
| love.graphics.setLineStyle | Устанавливает стиль линии. | 0.3.2 | |
| love.graphics.setLineWidth | Устанавливает ширину линии. | 0.3.2 | |
| love.graphics.setMeshCullMode | Устанавливает, обрезаются ли обращённые назад треугольники в сетке. | 11.0 | |
| love.graphics.setPixelEffect | Направляет операции рисования через пиксельный шейдер. | 0.8.0 | 0.9.0 |
| love.graphics.setPoint | Устанавливает размер и стиль точки. | 0.9.0 |
| love.graphics.setPointSize | Устанавливает размер точки. | ||
| love.graphics.setPointStyle | Устанавливает стиль точки. | 0.10.0 | |
| love.graphics.setRenderTarget | Захватывает операции рисования в буфере кадра | 0.7.0 | 0.8.0 |
| love.graphics.setScissor | Устанавливает или отключает обрезку. | 0.4.0 | |
| love.graphics.setShader | Маршрутизирует операции рисования через шейдер. | 0.9.0 | |
| love.graphics.setStencil | Определяет или освобождает маску. | 0.8.0 | 0.10.0 |
| love.graphics.setStencilTest | Настраивает или отключает тестирование маски. | 0.10.0 | |
| love.graphics.setWireframe | Устанавливает, будут ли использоваться ломаные линии при рисовании. | 0.9.1 |
Система координат
| love.graphics.applyTransform | Применяет заданный объект Transform к текущему преобразованию координат. | 11.0 | |
| love.graphics.inverseTransformPoint | Преобразует заданную 2D-позицию из пространства экрана в глобальные координаты. | 11.0 | |
| love.graphics.origin | Сбрасывает текущее преобразование координат. | 0.9.0 | |
| love.graphics.pop | Выталкивает текущее преобразование координат из стека преобразований. | ||
| love.graphics.push | Копирует и помещает текущее преобразование координат в стек преобразований. | ||
| love.graphics.replaceTransform | Заменяет текущее преобразование координат заданным объектом Transform. | 11.0 | |
| love.graphics.rotate | Поворачивает систему координат на две оси. | ||
| love.graphics.scale | Масштабирует систему координат на две оси. | ||
| love.graphics.shear | Сдвигает систему координат. | 0.8.0 | |
| love.graphics.transformPoint | Преобразует заданную 2D-позицию из глобальных координат в пространство экрана. | 11.0 | |
| love.graphics.translate | Перемещает систему координат на две оси. |
Окно
| love.graphics.checkMode | Проверяет, поддерживается ли режим отображения. | 0.9.0 | |
| love.graphics.getCaption | Получает заголовок окна. | 0.9.0 | |
| love.graphics.getDPIScale | Получает коэффициент масштабирования DPI окна. | 11.0 | |
| love.graphics.getDimensions | Получает ширину и высоту окна. | 0.9.0 | |
| love.graphics.getHeight | Получает высоту окна в пикселях. | 0.2.1 | |
| love.graphics.getMode | Возвращает текущий режим отображения. | 0.8.0 | 0.9.0 |
| love.graphics.getModes | Получает список поддерживаемых режимов полноэкранного режима. | 0.9.0 | |
| love.graphics.getPixelDimensions | Получает ширину и высоту окна в пикселях. | 11.0 | |
| love.graphics.getPixelHeight | Получает высоту окна в пикселях. | 11.0 | |
| love.graphics.getPixelWidth | Получает ширину окна в пикселях. | 11.0 | |
| love.graphics.getWidth | Получает ширину окна в пикселях. | 0.2.1 | |
| love.graphics.hasFocus | Проверяет, имеет ли окно игры фокус клавиатуры. | 0.8.0 | 0.9.0 |
| love.graphics.isCreated | Проверяет, было ли создано окно. | 0.9.0 | |
| love.graphics.setCaption | Устанавливает заголовок окна. | 0.9.0 | |
| love.graphics.setIcon | Установить значок окна. | 0.7.0 | 0.9.0 |
| love.graphics.setMode | Изменяет режим отображения. | 0.9.0 | |
| love.graphics.toggleFullscreen | Переключает полноэкранный режим. | 0.9.0 |
Информация о системе
| love.graphics.getCanvasFormats | Получает доступные форматы холста и то, поддерживается ли каждый из них. | 0.9.2 | |
| love.graphics.getCompressedImageFormats | Получает доступные сжатые форматы изображений и то, поддерживается ли каждый из них. | 0.9.2 | 11.0 |
| love.graphics.getImageFormats | Получает форматы пикселей, пригодные для изображений, и то, поддерживается ли каждый из них. | 11.0 | |
| love.graphics.getMaxImageSize | Получает максимальную поддерживаемую ширину или высоту изображений и холстов. | 0.9.0 | 0.10.0 |
| love.graphics.getMaxPointSize | Получает максимальный поддерживаемый размер точки. | 0.10.0 | |
| love.graphics.getRendererInfo | Получает информацию о видеокарте и драйверах системы. | 0.9.0 | |
| love.graphics.getStats | Получает статистику производительности, связанную с рендерингом. | 0.9.2 | |
| love.graphics.getSupported | Получает дополнительные графические функции и то, поддерживаются ли они. | 0.10.0 | |
| love.graphics.getSystemLimit | Получает максимальное значение, зависящее от системы, для функции love.graphics. | 0.9.1 | 0.10.0 |
| love.graphics.getSystemLimits | Получает максимальные значения, зависящие от системы, для функций love.graphics. | 0.10.0 | |
| love.graphics.getTextureTypes | Получает доступные типы текстур и то, поддерживается ли каждый из них. | 11.0 |
Перечисления
| AlignMode | Выравнивание текста. | ||
| ArcType | Разные типы дуг, которые можно рисовать. | 0.10.1 | |
| BlendAlphaMode | Различные способы, которыми альфа влияет на смешивание цветов. | 0.10.0 | |
| BlendMode | Разные способы выполнения смешивания цветов. | 0.2.0 | |
| CanvasFormat | Форматы текстур холста. | 0.9.0 | |
| ColorMode | Управляет тем, как нарисованные изображения влияют на текущий цвет. | 0.2.0 | 0.9.0 |
| CompareMode | Различные типы сравнений теста трафарета и теста глубины. | 0.10.0 | |
| CullMode | Как геометрия сетки отсекается при отрисовке. | 11.0 | |
| DrawMode | Управляет тем, рисуются ли фигуры как контур или заполненные. | ||
| FilterMode | Как изображение фильтруется при масштабировании. | ||
| GraphicsFeature | Функции графики, которые можно проверить с помощью love.graphics.getSupported. | 0.8.0 | |
| GraphicsLimit | Типы зависящих от системы графических ограничений. | 0.9.1 | |
| IndexDataType | Тип данных карты вершин. | 11.0 | |
| LineJoin | Стиль соединения линий. | ||
| LineStyle | Стили, в которых рисуются линии. | ||
| MeshDrawMode | Как вершины сетки используются при отрисовке. | 0.9.0 | |
| MipmapMode | Управляет наличием мип-мап у холста и его поведением при их наличии. | 11.0 | |
| PixelFormat | Форматы пикселей для текстур, ImageData и CompressedImageData. | 11.0 | |
| PointStyle | Как должны отрисовываться точки. | 0.10.0 | |
| SpriteBatchUsage | Рекомендации по использованию SpriteBatches и сеток. | 0.8.0 | |
| StackType | Типы стека графического состояния, используемые с love.graphics.push. | 0.9.2 | |
| StencilAction | Как функция теста трафарета изменяет значения трафарета пикселей, с которыми она взаимодействует. | 0.10.0 | |
| TextureFormat | Управляет форматом текстуры холста. | 0.9.0 | 0.10.0 |
| TextureType | Типы текстур (2D, кубовая и т. д.) | 11.0 | |
| VertexAttributeStep | Частота, с которой шейдер вершин извлекает данные атрибута вершины из сетки при её отрисовке. | 11.0 | |
| VertexWinding | Направление обхода вершин. | 11.0 | |
| WrapMode | Как изображение обворачивается внутри большого прямоугольника. |
См. также
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.graphics