【发布时间】:2018-06-03 12:01:53
【问题描述】:
我需要一个代码,更具体地说是一个游戏,其中陨石坠落,用户必须用箭头键躲避它们。
移动播放器不是我的问题。我会在最后这样做。
我想出了如何创建一个从上到下落下的动画对象。
如何创建一个每 2 秒创建一个新的下降元素的循环?元素的位置应该是随机的。
这是我目前的代码:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Game extends JPanel {
int x = 135;
int y = 0;
private void moveBall() {
y = y + 1;
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.fillOval(x, y, 30, 30);
}
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Meteorites");
Game game = new Game();
frame.add(game);
frame.setSize(300, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) {
game.moveBall();
game.repaint();
Thread.sleep(10);
}
}
}
【问题讨论】:
-
“如何创建一个每 2 秒创建一个新的下降元素的循环?” 创建一个每两秒触发一次的 Swing
Timer。发生这种情况时创建新的陨石。详情请见How to Use Swing Timers。
标签: java swing loops for-loop while-loop