2015-06-11 2 views
0

У меня есть Sprite, который появляется каждую секунду, что я не хочу делать, это изменить текстуру спрайта на анимацию, а когда она коснется ее, она вернется к нормальной текстуре.Как изменить текстуру Sprite на анимацию

 public void draw(SpriteBatch batch){ 
     enemyIterator=enemies.iterator(); //arraylist iterator 
     boolean touched=Gdx.input.justTouched(); 
     float touchX=Gdx.input.getX(); 

    //rendering and making the current sprite move 
     while(enemyIterator.hasNext()){ 
      Sprite sprite=enemyIterator.next(); 
      sprite.draw(batch); 
      sprite.translateY(deltaTime*movement); 

//detecting if the screen is touched and if the inputX is inside of the sprite. 
      if(touched==true && touchX > sprite.getX() && touchX < sprite.getX()+sprite.getWidth()){ 
       enemyIterator.remove(); //removing the sprite when touched. 
       Pools.free(sprite); //freeing the Pools 
      } 
     } 

ответ

1

Чтобы перейти от текстуры анимации

Создать subclas из Sprite называется MySprite или что-то, и переопределить метод draw(batch).

В методе рисования сверху, если вы хотите нарисовать текстуру, просто позвоните super.draw(batch), otehrwise используйте код анимации. Вы можете получить время дельта с использованием Gdx.graphics.getDeltaTime()

Почему вы должны указать timePassed

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

Обратите внимание, что частота кадров вашего приложения может варьироваться от кадра к кадру в зависимости от того, какую работу он должен выполнять.

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