在将java中的图像更改为动画后暂停

时间:2013-03-23 21:16:00

标签: java bufferedimage

我在一个类中有一个函数,可以将播放器移动32个32个磁贴。局部x和y值指的是(1,0),(0,1),( - 1,0)或(0,-1)(指的是运动方向)。精灵是一组缓冲图像,指的是用于行走的不同精灵。 Player.x和Player.y是玩家当前的平铺坐标,miniX和miniY是图像移动的像素数量。 Swing.player是一个包含图像的JPanel。 currentSprite是当前使用的spite。

        switch (2 * x + y) {
            case 2:
                Player.miniX = 4;
                currentSprite = sprites[10];
                Swing.player.repaint();
                //pause
                Player.miniX = 8;
                currentSprite = sprites[11];
                Swing.player.repaint();
                //pause
                Player.miniX = 12;
                Swing.player.repaint();
                currentSprite = sprites[10];
                Swing.player.repaint();
                //pause
                Player.miniX = 16;
                currentSprite = sprites[11];
                Swing.player.repaint();
                //pause
                Player.miniX = 20;
                currentSprite = sprites[10];
                Swing.player.repaint();
                //pause
                Player.miniX = 24;
                currentSprite = sprites[11];
                Swing.player.repaint();
                //pause
                Player.miniX = 28;
                currentSprite = sprites[10];
                Swing.player.repaint();
                //pause
                Player.miniX = 0;
                Player.x += 1;
                currentSprite = sprites[9];
                break;
            case 1:
                //omitted as is same as above
                break;
            case -1:
                //omitted as is same as above
                break;
            case -2:
                //omitted as is same as above
                break;
        }

在每班之间暂停几毫秒的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

使用此:Thread.sleep(1000);

这将使您当前的执行线程休眠1秒,即1000毫秒

答案 1 :(得分:0)

使用Swing Timer来安排动画。阅读How to Use Timers上的Swing教程中的部分。

相关问题