java写一个飞机大战
时间: 2023-12-20 22:07:38 浏览: 68
基于java开发的,微信飞机大战
好的,我可以为你提供一个简单的 Java 飞机大战的代码示例。下面是一个简单的 Java 代码示例:
```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 PlaneWar extends JPanel implements KeyListener, Runnable {
private int x = 0;
private int y = 0;
private int dx = 0;
private int dy = 0;
private boolean up = false;
private boolean down = false;
private boolean left = false;
private boolean right = false;
public PlaneWar() {
JFrame frame = new JFrame("PlaneWar");
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.addKeyListener(this);
frame.add(this);
new Thread(this).start();
}
public void paint(Graphics g) {
g.setColor(Color.BLUE);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.RED);
g.fillRect(x, y, 40, 40);
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = true;
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = true;
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = true;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = true;
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = false;
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = false;
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = false;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = false;
}
}
public void keyTyped(KeyEvent e) {
}
public void run() {
while (true) {
if (up) {
dy = -5;
}
if (down) {
dy = 5;
}
if (left) {
dx = -5;
}
if (right) {
dx = 5;
}
x += dx;
y += dy;
if (x < 0) {
x = 0;
}
if (x > getWidth() - 40) {
x = getWidth() - 40;
}
if (y < 0) {
y = 0;
}
if (y > getHeight() - 40) {
y = getHeight() - 40;
}
dx = 0;
dy = 0;
repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new PlaneWar();
}
}
```
这个示例程序使用 Java Swing 实现了一个简单的飞机大战,玩家可以通过键盘控制飞机的移动。在这个示例程序中,我们定义了一个 PlaneWar 类,它继承自 JPanel 类,并实现了 KeyListener 和 Runnable 接口。在 PlaneWar 类中,我们使用 paint() 方法来绘制游戏画面,使用 keyPressed() 和 keyReleased() 方法来处理键盘事件,使用 run() 方法来处理游戏逻辑和更新游戏画面。
在 main() 方法中,我们创建了一个 PlaneWar 对象,它会自动启动游戏线程,并在窗口中显示游戏画面。当玩家按下或释放键盘上的方向键时,PlaneWar 对象会根据输入来更新飞机的位置,并在每次游戏循环中重新绘制游戏画面。
阅读全文