基本上我有一个游戏,我想在玩家(或敌人)死亡时播放爆炸 gif,但我希望 gif 只播放一次。我已经在一个类中设置了所有内容,并且我有一个 ArrayList 可以在需要时添加爆炸,并且我目前已将其设置为在达到 gif 的持续时间后将其删除(使用 System.currentTimeMillis()) . 唯一的问题是它不准确,有时 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;
}