用java写一个坦克大战小游戏
时间: 2023-12-07 11:28:25 浏览: 92
好的,下面是一个简单的 Java 坦克大战小游戏的实现。
首先,我们需要创建一个 `Tank` 类来表示坦克,并在其中定义坦克的属性和方法。
```java
public class Tank {
private int x; // 坦克的横坐标
private int y; // 坦克的纵坐标
private int dir; // 坦克的方向(0:向上,1:向右,2:向下,3:向左)
public Tank(int x, int y, int dir) {
this.x = x;
this.y = y;
this.dir = dir;
}
public void move(int step) {
switch (dir) {
case 0:
y -= step;
break;
case 1:
x += step;
break;
case 2:
y += step;
break;
case 3:
x -= step;
break;
default:
break;
}
}
public void turn(int dir) {
this.dir = dir;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getDir() {
return dir;
}
}
```
接下来,我们创建一个 `Game` 类来表示游戏,并在其中定义游戏的属性和方法。
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JPanel implements KeyListener {
private Tank myTank; // 玩家控制的坦克
public Game() {
myTank = new Tank(300, 400, 0); // 初始化玩家控制的坦克
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLACK);
g.fillRect(0, 0, 800, 600); // 绘制背景
g.setColor(Color.BLUE);
g.fillRect(myTank.getX(), myTank.getY(), 30, 30); // 绘制玩家控制的坦克
}
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_UP:
myTank.turn(0);
myTank.move(10);
break;
case KeyEvent.VK_RIGHT:
myTank.turn(1);
myTank.move(10);
break;
case KeyEvent.VK_DOWN:
myTank.turn(2);
myTank.move(10);
break;
case KeyEvent.VK_LEFT:
myTank.turn(3);
myTank.move(10);
break;
default:
break;
}
repaint(); // 重绘游戏界面
}
@Override
public void keyReleased(KeyEvent e) {}
@Override
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) {
JFrame frame = new JFrame("坦克大战");
Game game = new Game();
frame.add(game);
frame.setSize(800, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addKeyListener(game);
}
}
```
最后,我们将 `Tank` 类和 `Game` 类的代码保存到两个不同的文件中,并在命令行中使用 `javac` 命令编译这两个文件,然后使用 `java` 命令运行 `Game` 类即可开始游戏。
```bash
$ javac Tank.java Game.java
$ java Game
```
阅读全文