libgdx: поворот текстуры при рисовании с помощью spritebatch

Im пытается повернуть текстуры, когда я их рисую. Я решил, что это будет иметь больше смысла, чем поворачивать изображения на 90 градусов в paint.net и сохраняйте их в разных файлах. Я посмотрел, думал, что документация api для Аргументов рисования spritebatch, но я просто не понимаю. Есть куча аргументов, таких как srcX, srcY, originX и так далее. Также я хотел бы знать, как сделать то же самое для регионов текстуры. Heres ссылка на документацию api page:http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/SpriteBatch.html

спасибо!

1 ответов


снова из документации, но скопировано здесь для удобства использования, и поэтому я могу объяснить немного лучше.

x - the x-coordinate in screen space
y - the y-coordinate in screen space

эти два значения представляют расположение для рисования текстуры в пространстве экрана (игровое пространство). Довольно понятно.

originX - the x-coordinate of the scaling and rotation origin relative to the screen space coordinates
originY - the y-coordinate of the scaling and rotation origin relative to the screen space coordinates

эти два значения представляют расположение, в котором происходит вращение (и масштабирование) относительно пространства экрана. Так, например, если вы дадите значение 0, 0 здесь, вращение и масштабирование будут произойдет вокруг одного из углов вашей текстуры (внизу слева, я считаю), тогда как если вы дадите центр (ширина/2, высота/2), вращение и масштабирование произойдет вокруг центра вашей текстуры (это, вероятно, то, что вы хотите для любых "нормальных" вращений)

width - the width in pixels
height - the height in pixels

размеры для рисования текстуры на экране.

scaleX - the scale of the rectangle around originX/originY in x
scaleY - the scale of the rectangle around originX/originY in y

значения, представляющие масштаб вашего прямоугольника, где значения от 0 до 1 будут сжимать прямоугольник, а значения больше чем 1 расширит прямоугольник. Обратите внимание, что это касается происхождения, которое вы дали ранее, а это означает, что если это не центр, изображение может выглядеть искаженным.

rotation - the angle of counter clockwise rotation of the rectangle around originX/originY

угол поворота изображения. Опять же, это вокруг начала координат, заданного ранее, поэтому вращение может не казаться "правильным", если начало координат не является центром изображения

srcX - the x-coordinate in texel space
srcY - the y-coordinate in texel space

эти два значения являются начальным местоположением фактической области файла изображения (.формат PNG. ,формат jpg, whatever), который вы хотите использовать, в пикселях. В основном начало вашего образа.

srcWidth - the source with in texels
srcHeight - the source height in texels

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

flipX - whether to flip the sprite horizontally
flipY - whether to flip the sprite vertically

наконец, эти два логических значения используются для переключения изображения по горизонтали или вертикали.

теперь вы можете заметить, что подобные метод рисования TextureRegions не имеет srcX, srcY, srcWidth или srcHeight. Этот потому что это значения, которые вы даете области текстуры при ее создании из текстуры.

по существу, это означает, что команда

//with TextureRegions
SpriteBatch.draw(textureRegion, x, y, originX, originY, width, height, scaleX, scaleY, rotation);

эквивалентно

//with Textures from TextureRegions
SpriteBatch.draw(textureRegion.getTexture(), x, y, originX, originY, width, height, scaleX, scaleY, rotation, textureRegion.getRegionX(), textureRegion.getRegionY(), textureRegion.getRegionWidth(), textureRegion.getRegionHeight(), false, false);