Еще один день, еще одна проблема.LibGDX - масштабирование анимации
Я пытаюсь сделать анимацию из TextureRegions, но мне нужно масштабировать ее на какое-то значение. У меня нет проблем с масштабированием неподвижных изображений (спрайты из областей текстуры), но я понятия не имею, почему это не работает с кадрами анимации.
С неподвижных изображений я сделать что-то вроде этого:
darknessActive = new Sprite(AssetLoaderUI.darknessActive);
darknessActive.setPosition(50, 20);
darknessActive.setScale(scaler);
И тогда я сделать это в визуализатора просто отлично.
С анимацией я пытаюсь сделать что-то вроде этого:
Frame1 = new TextureRegion(texture, 764, 75, 141, -74);
Frame2 = new TextureRegion(texture, 907, 75, 133, -75);
Frame1S = new Sprite(Frame1);
Frame1S.setScale(scaler);
Frame2S = new Sprite(Frame2);
Frame2S.setScale(scaler);
Sprite[] Frames = { Frame1S, Frame2S };
myAnimation = new Animation(0.06f, Frames);
myAnimation.setPlayMode(Animation.PlayMode.LOOP);
, но изображение все еще в оригинальном размере, «скейлер» не имеет никакого значения.
Мне пришлось слегка изменить метод рисования (сделать 2 новые переменные, newHeight и newWidth и масштабировать их там), но в остальном это довольно опрятное решение, спасибо. – Kierek93
Является ли использование этого метода другим? Я попробовал 'batch.draw (animation.getKeyFrame (elapsedTime, true), 0, 0);' , но это не имеет никакого значения по сравнению с использованием расширенного класса, все еще рисуя огромный спрайт на экран. И да, я настраиваю масштабирование и инициализацию SpriteAnimation следующим образом: 'animation = new SpriteAnimation (1/15f, atlas.getRegions()); animation.setScaling (0.01f); ' – kacpr
@kacpr, что перегрузка метода draw не имеет параметров масштабирования. Выберите перегрузку ничьей, у которой есть параметры, которым вам нужен SpriteBatch. – Tenfour04