您好我正在创建一个迷你网球比赛但由于某种原因,球不会在屏幕上移动。我设法创造了蝙蝠,他们都移动了。球需要从球棒上反弹并向任何方向前进。任何想法??
答案 0 :(得分:2)
动画需要的是javax.swing.Timer
。这是基本构造
Timer(int delay, ActionListener listener)
对于每隔这么多毫秒,计时器将触发ActionEvent
,这将在你传递给它的ActionListener
中被监听。因此,在您的情况下,您需要调用ball.move()
方法让ball
动画化。
下面的代码是我添加的 all 到MyDrawingPanel
的构造函数,它动画很好。注意:我使用了昨天发布的不同问题的代码,因此如果您进行了更改,我无法保证您当前代码的结果相同。
Timer timer = new Timer(20, new ActionListener(){
public void actionPerformed(ActionEvent e) {
ball.move();
repaint();
}
});
timer.start();
你当然可以有一个单独的按钮,你可以在其中拨打timer.start()
或timer.stop()
,并可能有一个重置按钮,您可以将球设置为默认位置。但是现在,上面的内容应该让你的动画变得生动。