Вращающийся спрайт вокруг внутренней и внешней точек Libgdx - PullRequest
0 голосов
/ 25 февраля 2019

Как я могу вращать Sprite вокруг внутренней и внешней точек одновременно?

Если я делаю так:

        sprite.setOrigin(innerX, InnerY);
        sprite.rotate(angle1);
        sprite.setOrigin(outerX, outerY);
        sprite.rotate(angle2);

libgdx вращает спрайт на angle1 + angle2 вокруг внешней точки.Есть ли способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

(Извините, у меня недостаточно репутации для комментариев) Можете ли вы предоставить больше информации?Трудно понять ошибку.

Возможные решения на данный момент могут быть:

  • Являются ли внутренние значения действительно теми, которые вы ожидаете?Вы регистрировали их и проверяли, отличаются ли они?
  • InnerY начинается с заглавной буквы "I", это правильно?

РЕДАКТИРОВАТЬ:

Итак, я попытался воссоздать вашу проблему, и она работает нормально для меня.Может быть, мой пример поможет вам:

    sprite = new Sprite(textureAtlas.findRegion("circle14"));
    sprite.setBounds(0, 0 , sprite.getRegionWidth(), sprite.getRegionHeight());

    // This is used to calculate an example innerX and innerY
    sprite.setOrigin(sprite.getWidth()/3f, sprite.getHeight()/3f);
    sprite.rotate(30f);

    // This is used to calculate an example outerX and outerY
    sprite.setOrigin(sprite.getWidth() * 1.5f, sprite.getHeight()*1.5f);
    sprite.rotate(30f);

Не забудьте нарисовать свой спрайт в вашем методе рендеринга следующим образом:

sprite.draw(batch);
...