定义一个test的java类的坦克小游戏
时间: 2023-06-11 14:07:38 浏览: 54
好的,以下是一个简单的坦克小游戏的Java类:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JPanel implements ActionListener, KeyListener {
private Timer timer;
private int x, y, dx, dy;
private boolean up, down, left, right;
public Test() {
timer = new Timer(10, this);
x = 50;
y = 50;
dx = 0;
dy = 0;
up = false;
down = false;
left = false;
right = false;
setPreferredSize(new Dimension(400, 400));
addKeyListener(this);
setFocusable(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.GREEN);
g.fillRect(x, y, 50, 50);
}
public void actionPerformed(ActionEvent e) {
if (up) {
dy = -1;
} else if (down) {
dy = 1;
} else {
dy = 0;
}
if (left) {
dx = -1;
} else if (right) {
dx = 1;
} else {
dx = 0;
}
x += dx;
y += dy;
repaint();
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = true;
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = true;
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = true;
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = true;
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = false;
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = false;
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = false;
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = false;
}
}
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) {
JFrame frame = new JFrame("Tank Game");
Test game = new Test();
frame.add(game);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
game.timer.start();
}
}
```
这是一个简单的坦克小游戏,玩家可以通过键盘控制坦克的移动。在 `paintComponent` 方法中,我们绘制了一个绿色的矩形作为坦克。在 `actionPerformed` 方法中,我们根据玩家的按键更新坦克的位置。在 `keyPressed` 和 `keyReleased` 方法中,我们记录玩家按下和释放的按键。最后,在 `main` 方法中,我们创建一个 `JFrame` 并将游戏添加到其中,然后启动游戏的主循环。