用java写一个飞行游戏代码
时间: 2023-12-20 09:03:47 浏览: 163
好的,针对您的问题,以下是一个简单的Java飞行游戏代码示例:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FlightGame extends JFrame implements ActionListener {
Timer timer;
ImageIcon bgImg, planeImg, enemyImg;
JLabel scoreLabel, bgLabel, planeLabel;
int planeX, planeY, enemyX, enemyY, score;
public FlightGame() {
setTitle("飞行游戏");
setLayout(null);
// 加载图片资源
bgImg = new ImageIcon("bg.jpg");
planeImg = new ImageIcon("plane.png");
enemyImg = new ImageIcon("enemy.png");
// 初始化背景和飞机
bgLabel = new JLabel(bgImg);
bgLabel.setBounds(0, 0, 800, 600);
add(bgLabel);
planeLabel = new JLabel(planeImg);
planeX = 400; planeY = 500;
planeLabel.setBounds(planeX, planeY, 80, 80);
add(planeLabel);
// 初始化得分标签
scoreLabel = new JLabel("得分: 0");
scoreLabel.setFont(new Font("宋体", Font.BOLD, 24));
scoreLabel.setForeground(Color.WHITE);
scoreLabel.setBounds(20, 20, 200, 30);
add(scoreLabel);
// 初始化敌机位置和计时器
enemyX = 200; enemyY = -80;
timer = new Timer(50, this);
timer.start();
// 设置窗口参数
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// 敌机下移
enemyY += 5;
if (enemyY > 600) {
enemyX = (int)(Math.random() * 700);
enemyY = -80;
}
// 检测是否碰撞
if (planeX + 50 > enemyX && planeX < enemyX + 50 &&
planeY < enemyY + 50 && planeY + 50 > enemyY) {
JOptionPane.showMessageDialog(this, "游戏结束,得分:" + score);
System.exit(0);
}
// 更新得分并重绘界面
score += 1;
scoreLabel.setText("得分: " + score);
planeLabel.setBounds(planeX, planeY, 80, 80);
bgLabel.paintImmediately(bgLabel.getBounds());
}
public static void main(String[] args) {
new FlightGame();
}
}
```
这是一个简单的飞行游戏,包含背景、飞机、敌机、得分等要素。玩家通过控制飞机左右移动以躲避敌机,当飞机与敌机碰撞时游戏结束。本示例仅供参考,具体游戏实现需根据需求进行相应修改。
阅读全文