gpt4 book ai didi

java - Sprite 动画计时java swing

转载 作者:行者123 更新时间:2023-11-29 05:22:29 24 4
gpt4 key购买 nike

我尝试使用 Swing 在 JAVA 中制作 Sprite 动画。下面的代码是一个 ImageIcon 数组,我将对其进行迭代以显示多个不同的图像(只有 2 个用于测试目的)。 但我不知道如何正确安排每次迭代的时间。我的意思是,当我编译我正在处理的标签的代码时,只显示数组的最后一个图像(显然),但我希望它显示第一个图像几毫秒,然后显示另一个图像。 我做了一些研究并看到了一些关于 Time 类的建议,但我真的不知道如何在这些情况下实现它。我还尝试使用 sleep,它在 C++ 中运行良好,但只提出了 thread.sleep,在这种情况下不起作用。

动画应该模拟一张扑克牌被转动(对于大富翁游戏)。

有人可以就此事给我一些意见吗?

import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class Sprite2 {

private ImageIcon[] sprites;

private ImageIcon a = new ImageIcon("C:/Users/Guilherme/Desktop/G/FEUP/2º Ano/2nd semester/Eclipse repos/Sprite/src/images/ball.jpg");
private ImageIcon b = new ImageIcon("C:/Users/Guilherme/Desktop/G/FEUP/2º Ano/2nd semester/Eclipse repos/Sprite/src/images/transferir.jpg");

public Sprite2() {

sprites = new ImageIcon[] {a, b};
}

public void render(JLabel lbl) {

for (int i = 0; i < sprites.length; i++) {
lbl.setIcon(sprites[i]);
//sleep(1000); - Looking for a similar Java function which is able to delay each iteration and make it look like a gif
}
}

最佳答案

您可以使用 Swing 计时器,请参阅 How to Use Swing Timers更多细节。

您不应在事件调度线程 上使用sleep(),因为它会阻止线程处理绘画和其他与 UI 相关的事件,并且 UI 将被卡住。有关详细信息,请参阅 The Event Dispatch Thread教程。

关于java - Sprite 动画计时java swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108644/

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