Java游戏中的两个交替图像和计时器

Java游戏中的两个交替图像和计时器,java,image,swing,timer,alternate,Java,Image,Swing,Timer,Alternate,我正在用Java做一个简单的游戏。 我有一个名为“抽屉”的类,每50毫秒重新绘制一次我保存在BuffereImage数组中的图像 我有一个方法可以将玩家转换为玩家类中的大型玩家,代码如下: public void playerEvolution() { for (int i = 0; i < 5; i++) { this.setImageIndex(15); try { Thread.sleep(500);

我正在用Java做一个简单的游戏。 我有一个名为“抽屉”的类,每50毫秒重新绘制一次我保存在BuffereImage数组中的图像

我有一个方法可以将玩家转换为玩家类中的大型玩家,代码如下:

    public void playerEvolution() {
    for (int i = 0; i < 5; i++) {
        this.setImageIndex(15);
        try {
            Thread.sleep(500);
            this.setImageIndex(17);
            Thread.sleep(500);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    this.isHuge();
}
public void playerEvolution(){
对于(int i=0;i<5;i++){
这是setImageIndex(15);
试一试{
睡眠(500);
这是setImageIndex(17);
睡眠(500);
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
这个;
}
我希望每0.5秒交替2张图像,但在游戏面板中,不会交替任何图像,仅在花费2.5秒(0.5*5循环)时显示最终图像


有什么想法吗

如果这是一个Swing应用程序(您不会说),请使用javax.Swing.Timer或Swing Timer。不要在主Swing事件线程(称为事件调度线程或EDT)上调用
Thread.sleep(…)
。在计时器的ActionListener中设置一个int count变量,该变量在每次调用
actionPerformed(…)
时递增,如果计数>达到最大计数(这里是5*2,因为您来回交换)

e、 g

public void playerEvolution() {
  int delay = 500; // ms
  javax.swing.Timer timer = new javax.swing.Timer(delay , new ActionListener() {
     private int count = 0;
     private int maxCount = 5;

     @Override
     public void actionPerformed(ActionEvent evt) {
        if (count < maxCount * 2) {
           count++;
           // check if count is even to decide 
           // which image to use, and then
           // do your image swapping here
        } else {
           ((javax.swing.Timer)evt.getSource()).stop();
        }
     }
  });
}
public void playerEvolution(){
int delay=500;//毫秒
javax.swing.Timer Timer=新建javax.swing.Timer(延迟,新建ActionListener(){
私有整数计数=0;
私有整数最大计数=5;
@凌驾
已执行的公共无效操作(操作事件evt){
如果(计数<最大计数*2){
计数++;
//检查计数是否为偶数
//使用哪个图像,然后
//在这里进行图像交换吗
}否则{
((javax.swing.Timer)evt.getSource()).stop();
}
}
});
}

也许您正在寻找动画。看