[英]Java Swing Animation without Thread.sleep
我目前正在制作一个游戏,希望对掉到板上的棋子进行动画处理,但是不能使用Thread.sleep()来中断游戏。 我该如何执行以下代码,使其在再次向下绘制椭圆形之间停顿一段时间。
for(int counter = 0 ; counter < getMouseX(); counter++) {
g.fillOval(x*70+10, y, 50, 50);
//code to wait for 'x' seconds here
}
另外,在此过程进行期间,有什么方法可以禁用鼠标单击吗?
一种方法是使用Swing计时器。 将“计时器”设置为每秒触发X个计时器,然后在此处执行动画。
它可能看起来像这样:
final Timer t = new Timer(10, new ActionListener(){
public void actionPerformed(ActionEvent e){
//do your updating of your variables here
repaint();
counter++;
if(counter >= mouseX){
t.stop();
}
}
});
t.start();
可以在此处的Timer教程中找到更多信息。 您还可以考虑使用类似“ java swing animation”的工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.