如何将Sprite纹理更改为Animation

时间:2015-06-11 07:47:31

标签: java animation libgdx 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 个答案:

答案 0 :(得分:1)

从纹理更改为动画

创建一个名为MySprite的Sprite子类,然后覆盖draw(batch)方法。

在覆盖绘制方法中,如果要绘制纹理,只需调用super.draw(batch),即可使用动画绘制代码。您可以使用Gdx.graphics.getDeltaTime()

获取增量时间

为什么必须指定timePassed

您的程序将以不同的帧速率运行到动画中,因此通过告诉动画已经过了多少时间,它可以根据它自己的帧速率确定它应该在哪个帧上。

请注意,您的应用的帧率可能会因帧到帧而异,具体取决于它需要做多少工作。