LibGDX 1.5 вращается вокруг своего центра

Я пытаюсь вращать спрайт вокруг его центра, но независимо от того, что я пытаюсь, я всегда поворачиваю его за угол. Я создаю спрайт таким образом:

Pixmap pixmap = new Pixmap(64, 64, Format.RGBA8888); pixmap.setColor(153/255f, 255/255f, 153/255f, 255/255f); pixmap.fillTriangle(0, 0, 0, 32, 32, 16); Texture texture = new Texture(pixmap); triangle = new Sprite(texture); triangle.setSize(3, 3); triangle.setOriginCenter(); triangle.setPosition(0 - triangle.getWidth() / 2.0f, 0 - triangle.getHeight() / 2.0f); 

То я вращаю его каждый дельта-тайм таким образом:

 triangle.rotate(90 * deltaTime); 

И сделать это следующим образом:

 batch.begin(); worldController.triangle.draw(batch); batch.end(); 

Я следую примеру в книге «Обучение LibGDX Game Development, второе издание», поэтому у меня есть WorldController и WorldRenderer. Что мне не хватает? Разве не должно быть достаточно установить источник спрайта в центр и нарисовать его? Это поведение, которое у меня есть:

Введите описание изображения здесь

В то время как я хотел бы, чтобы он вращался «на месте».

Кажется, что вы пропустили линию

 triangle.setOrigin(originX, originY); 

(OriginX, originY) – центральные координаты вашего треугольника.

EDIT: причина, по которой ваш текущий код не работает, состоит в том, что текущее начало центра (0, 0).

(Я не уверен, почему, но он оказался центром, когда я проверил ваш код). Вы можете добавить журналы в свой код, используя

 Gdx.app.log("Tag", "LogInformation"); 

Вот что вы должны делать

 originX = (0+32)/2; originY = (0+32)/2; 

или

 originX = (lowestXValue+highestXValue)/2; originY = (lowestYValue+heightYValue)/2; 

Вот API на Sprite, это может помочь вам больше повернуть ()

Хорошо, я нашел проблему. Сначала я объявил pixmap размером 32×32 и соответствующим образом заполнил треугольник. Затем я общался с ним и менял размер до 64×64, но треугольник рисовался с использованием старых координат, тем самым занимая нижнюю левую «подзадачу» всей pixmap, поэтому он вращался таким образом.