Для чего используются эти аргументы в интерфейсе пакета libgdx?
Я пытаюсь выяснить, что делают все эти аргументы, например, когда я рисую свое изображение маркера, оно появляется в виде сплошного блока вместо спрайта, который чередуется между сплошным цветом и пустой частью (то есть вместо 10101 это 11111, где 0 пустые части в текстуре).
Раньше я использовал batch.draw(texture, float x, float y)
и он отображает текстуру правильно. Однако я играл с вращением, и эта версия розыгрыша показалась наиболее подходящей:
batch.draw(texture, x, y, originX, originY, width, height, scaleX, scaleY, rotation, srcX, srcY, srcWidth, srcHeight, flipX, flipY)
Я могу выяснить очевидные, те, которые являются originX
, originY
(место для рисования изображения из его верхнего левого пикселя, я верю) однако тогда я не знаю, что x
, y
координата после текстуры для.
scaleX
,scaleY
, rotation
, а также flipX
, flipY
Я знаю, что делать, но что srcX
а также srcY
, вместе с srcWidth
а также srcHeight
за?
редактировать: я поиграл и выяснил, что делают srcX,srcY и srcHeight,Width. Я не могу понять, что originX,Y делает, хотя я предполагаю, что это центральная точка изображения. Так как я не хочу играть с этим в любом случае, я должен оставить это как 0,0?
Что было бы распространено для манипулирования центральной точкой изображений?
2 ответа
Отвечая на главный вопрос.
srcX, srcY, srcWidth, srcHeight
Эти значения определяют, какую часть (прямоугольник) исходной текстуры вы хотите нарисовать. Например, исходное изображение имеет размер 100x100 пикселей. И вы хотите нарисовать только 60x60 часть в середине исходного изображения.
batch.draw(texture, x, y, 20, 20, 60, 60);
Отвечая на ваш отредактированный вопрос.
Начало координат является центральной точкой для преобразования вращения и масштаба. Поэтому, если вы хотите, чтобы ваш спрайт масштабировался и вращался вокруг его центральной точки, вы должны установить исходные значения так:
float originX = width * 0.5f;
float originY = height * 0.5f;
В случае, если вас не волнует поворот и масштабирование, вы можете не указывать эти параметры (оставьте это значение 0).
И имейте в виду, что происхождение не определяет положение рисунка изображения (это самая распространенная ошибка). Это означает, что два следующих вызова метода рисуют изображение в одной и той же позиции (четвертый и пятый параметры - originX и originY):
batch.draw(image, x, y, 0, 0, width, height, ...);
batch.draw(image, x, y, 50, 50, width, height, ...);
Согласно документации, параметры определены так:
srcX - the x-coordinate in texel space
srcY - the y-coordinate in texel space
srcWidth - the source with in texels
srcHeight - the source height in texels