2015-11-18 3 views
0

Я использую класс нашел здесь stackover для анимации актеров, но я врезаться на физическом устройствеанимация актера в libgdx аварии на Iphone

класс AnimatedImage.java:

public class AnimatedImage extends Image 
{ 
    protected Animation animation = null; 
    private float stateTime = 0; 

    public AnimatedImage(Animation animation) { 
     super(animation.getKeyFrame(0)); 
     this.animation = animation; 
    } 

    @Override 
    public void act(float delta) 
    { 
     ((TextureRegionDrawable)getDrawable()).setRegion(animation.getKeyFrame(stateTime+=delta, true)); 
     super.act(delta); 
    } 
} 

создать метод(), получить кадры и добавить на сцену:

Array<TextureRegion> waveArrayTextureRegions = new Array<TextureRegion>(); 
for(int i = 1; i < 24; i++){ 
    waveArrayTextureRegions.add(new TextureRegion(new Texture("wave/4096/wave ("+i+").png"))); 
} 
waveAnimation = new Animation(0.15f,waveArrayTextureRegions, Animation.PlayMode.LOOP); 
waveActor = new AnimatedImage(waveAnimation); 
waveActor.setWidth(Gdx.graphics.getWidth()/1.05f); 
waveActor.setHeight(Gdx.graphics.getHeight()/1.05f); 
waveActor.setPosition(0,0); 
stage.addActor(waveActor); 

Я бы добавить этот класс анимированный актера, и на Android нет проблем, но когда я установить его на моем iPhone через RoboVM аварийное завершение с. Возможно, что класс или что-то не так с симпатией к iPhone? Additirruta на симуляторе iPhone работает только тогда, когда я помещаю его в физическое устройство, которое я сбой в этом классе. Может кто-нибудь мне помочь?

+0

Можете ли вы предоставить дополнительную информацию об аварии? Было бы полезно использовать трассировку и/или журнал. – asherbar

+0

Как user2016436 сказал, что нам нужно больше информации .. Случайные догадки: текстуры большие или файловая система не работает так, как вы ожидаете. – NLindbom

ответ

0

Проблема в том, что использование текстуры более 4096px, вместо этого, с использованием изображений размером не более 4000 x 4000 пикселей все работает красиво. Очевидно, не поддерживаются более крупные резолюции.

В моем случае у меня было изображение 8000 px на 1200, было использовано для создания прокручиваемого фона, решение состоит в том, чтобы сделать два изображения с 4000 каждый и объединить их с кодом, возможно, в группе (libgdx).

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