基本上我有一个游戏,当玩家(或敌人)死亡时,我想播放一个爆炸的gif动画,但我希望这个gif只播放一次。
我已经在一个类中设置好了所有内容,并且当我需要时,我有一个ArrayList来添加爆炸效果。目前,我已经将其设置为在gif的持续时间到达后将其删除(使用System.currentTimeMillis())。唯一的问题是,它不是很精确,有时gif会提前停止并消失,有时会翻转,这两种情况都会导致下一个gif从另一个gif离开的地方开始播放。
是否有某种方法、类、监听器或其他任何东西可以告诉我gif所在的帧数,或者它循环了多少次?我的代码可以完成其余的工作,我只需要在if语句中放入更好的内容,而不是这个:
g2D.drawImage(explosion, x - 150, y - 150, null);
if(System.currentTimeMillis() - startingTime > 520){
System.out.println(System.currentTimeMillis());//for testing accuracy
Game.explosions.remove(this);
explosion = null;
}
System.out.println
这一行,那么您可能会得到更好的时间测量结果。 - Luiggi Mendoza