给我写一个飞机大战的java代码
时间: 2023-08-28 15:08:36 浏览: 41
以下是一个简单的飞机大战Java代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PlaneWar extends JPanel implements ActionListener, KeyListener {
private Timer timer;
private int width = 500;
private int height = 500;
private int playerX = width / 2;
private int playerY = height - 75;
private int enemyX = width / 2;
private int enemyY = 25;
private boolean leftPressed = false;
private boolean rightPressed = false;
public PlaneWar() {
timer = new Timer(5, this);
timer.start();
addKeyListener(this);
setFocusable(true);
setFocusTraversalKeysEnabled(false);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(playerX, playerY, 50, 50);
g.setColor(Color.RED);
g.fillRect(enemyX, enemyY, 50, 50);
}
public void actionPerformed(ActionEvent e) {
if (leftPressed && playerX > 0) {
playerX -= 1;
}
if (rightPressed && playerX < width - 50) {
playerX += 1;
}
enemyY += 1;
if (enemyY > height) {
enemyY = 25;
enemyX = (int) (Math.random() * (width - 50));
}
repaint();
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
leftPressed = true;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
rightPressed = true;
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
leftPressed = false;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
rightPressed = false;
}
}
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) {
JFrame frame = new JFrame("Plane War");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
PlaneWar game = new PlaneWar();
game.setPreferredSize(new Dimension(game.width, game.height));
frame.getContentPane().add(game);
frame.pack();
frame.setVisible(true);
}
}
```
这个简单的程序创建了一个玩家和一个敌人,玩家可以左右移动,敌人会自动向下移动。你可以根据自己的需要修改代码来添加更多的功能,例如子弹,碰撞检测等等。