我在一个类中有一个函数,可以将播放器移动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;
}
在每班之间暂停几毫秒的最佳方法是什么?
答案 0 :(得分:0)
使用此:Thread.sleep(1000);
这将使您当前的执行线程休眠1秒,即1000毫秒
答案 1 :(得分:0)
使用Swing Timer来安排动画。阅读How to Use Timers上的Swing教程中的部分。