gpt4 book ai didi

java - 如何使 gif 运行一次并在 Java 中停止?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:50:09 24 4
gpt4 key购买 nike

基本上我有一个游戏,我想在玩家(或敌人)死亡时播放爆炸 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;
}

最佳答案

通常的解决方案是不使用 gif :)

大多数游戏会单独存储 gif 的每个“帧”,并按顺序显示它们,而不是尝试让 gif 渲染工作。

System.currentTimeMillis() 不是非常准确,而且在调用绘图函数之间可能会在后台发生大量事情(所有这些都会影响帧率),所以我一般建议不要依赖它。

关于java - 如何使 gif 运行一次并在 Java 中停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com