java乌龟爬行改进代码
时间: 2024-05-02 08:11:53 浏览: 15
以下是一个简单的Java乌龟爬行的改进代码示例:
```java
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Turtle extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private final int WIDTH = 500;
private final int HEIGHT = 500;
private final int DELAY = 25; // 调整这个值可以控制乌龟的速度
private int x, y, dx, dy;
private int speed = 1; // 这个值可以控制乌龟的速度
private Random rand;
public Turtle() {
rand = new Random();
this.setPreferredSize(new Dimension(WIDTH, HEIGHT));
this.setBackground(Color.BLACK);
x = WIDTH / 2;
y = HEIGHT / 2;
dx = rand.nextInt(5) - 2;
dy = rand.nextInt(5) - 2;
Timer timer = new Timer(DELAY, this);
timer.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GREEN);
g.fillOval(x, y, 20, 20);
}
public void move() {
x += dx * speed;
y += dy * speed;
// 边界检测
if (x < 0) {
x = 0;
dx = -dx;
}
if (x > WIDTH - 20) {
x = WIDTH - 20;
dx = -dx;
}
if (y < 0) {
y = 0;
dy = -dy;
}
if (y > HEIGHT - 20) {
y = HEIGHT - 20;
dy = -dy;
}
}
public void actionPerformed(ActionEvent e) {
move();
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame("Turtle");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new Turtle());
frame.pack();
frame.setVisible(true);
}
}
```
这个代码使用了 Java 的 Swing 库来创建一个窗口并在其中显示一个小乌龟。改进的部分在于,可以调整 `speed` 和 `DELAY` 来控制乌龟的速度,同时添加了边界检测,防止乌龟跑出窗口。