2014-01-02 2 views
2

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

if (!animation.isAnimationFinished(time)) 
    time += Gdx.graphics.getDeltaTime(); 
else 
    time = 0; 

Но проблема в том, что я не могу загрузить любую текстуру, его ширина и высота должна быть степенью 2, так что я получил большую текстуру 1024х1024, который имеет 2 изображения. С sprite.setTexture() я могу только поместить текстуру, но animation.getframe возвращает область текстуры.

Есть ли способ изменить текстуру спрайта с помощью анимации?

Также

sprite.setTexture(animation.getKeyFrame(time).getTexture()); 

не работает.

Это работает

sprite = new Sprite(animation.getKeyFrame(time)); 

Но я не думаю, что это самая лучшая идея ... Я думаю, что это медленно может может сделать ошибки.

ответ

5

Вы обычно используете TextureRegion для спрайтов. Метод, который вы ищете, - TextureRegion#setRegion (Sprite расширяет TextureRegion).

Как это:

sprite.setRegion(animation.getKeyFrame(time)); 
+1

Спасибо, это сработало! –

Смежные вопросы