# kyroFlyGame **Repository Path**: lundd/kyroFlyGame ## Basic Information - **Project Name**: kyroFlyGame - **Description**: # 飞机大战游戏 一个使用Java Swing开发的经典飞机射击游戏。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-11 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 飞机大战游戏 一个使用Java Swing开发的经典飞机射击游戏。 ## 游戏控制 - **W键**: 向上移动 - **S键**: 向下移动 - **A键**: 向左移动 - **D键**: 向右移动 - **K键**: 发射鱼雷 - **自动发射**: 玩家飞机会自动发射子弹(每0.25秒一次) ## 游戏规则 - 玩家初始血量: 3点 - 玩家初始鱼雷: 3个 - 子弹伤害: 1点(自动发射) - 鱼雷伤害: 10点(范围伤害) - 敌机类型: 5种(血量分别为1, 3, 5, 10, 30) - 最多同时存在12架敌机 - 敌机生成间隔: 1秒 - **敌机智能飞行**: - 曲线飞行轨迹 - 随机悬停0.5-3秒 - 8个方向随机移动 - 边界智能处理 - 敌机射击间隔: 1秒 ## 如何运行 ### Windows系统 双击运行 `test_images.bat` 文件,或在命令行中执行: ```cmd test_images.bat ``` ### Mac/Linux系统 在终端中执行: ```bash chmod +x run_game.sh ./run_game.sh ``` ### 手动编译运行 ```bash # 编译(注意使用UTF-8编码) javac -encoding UTF-8 -d bin src/game/*.java # 运行 java -Dfile.encoding=UTF-8 -cp bin game.GameFrame ``` ### 使用IDE运行 直接运行 `src/game/GameFrame.java` 中的 `main` 方法。 **注意**:如果使用IDE,请确保项目编码设置为UTF-8,以正确加载中文文件名的图片。 ## 图片资源 游戏已配置使用以下图片资源: ### 背景图片(循环滚动) - **背景图1-5.png** - 5张循环背景图(位于 `resources/images/background/`) - 背景会自动向下滚动,创造飞行效果 - 按顺序循环:背景图1→2→3→4→5→1... - 无缝衔接,流畅过渡 ### 飞机贴图(位于 `resources/images/fly/`) - **飞机贴图.png** - 玩家飞机 - **飞机贴图1-5.png** - 5种敌机类型 如果图片加载失败,游戏会自动使用默认的几何图形绘制。 ## 添加图片资源(可选) 游戏支持使用图片资源,如果不提供图片,将使用默认的几何图形绘制。 ### 图片目录结构 ``` resources/ └── images/ ├── background.png (背景图片,推荐800x600) ├── player.png (玩家飞机) ├── enemy1.png (敌机类型1) ├── enemy2.png (敌机类型2) ├── enemy3.png (敌机类型3) ├── enemy4.png (敌机类型4) └── enemy5.png (敌机类型5) ``` ### 图片要求 - **背景图片**: 800x600像素,PNG格式 - **飞机图片**: 建议40-60像素宽,50-70像素高,PNG格式(支持透明背景) - 所有图片应为PNG格式以支持透明度 ### 如何添加图片 1. 在项目根目录创建 `resources/images/` 文件夹 2. 将您的图片文件放入该文件夹 3. 确保文件名与上述列表匹配 4. 重新运行游戏 ## 项目结构 ``` src/ └── game/ ├── GameFrame.java # 主窗口 ├── GamePanel.java # 游戏面板 ├── GameObject.java # 游戏对象基类 ├── PlayerAircraft.java # 玩家飞机 ├── EnemyAircraft.java # 敌机 ├── PlayerBullet.java # 玩家子弹 ├── EnemyBullet.java # 敌机子弹 ├── Torpedo.java # 鱼雷 ├── Explosion.java # 爆炸效果 ├── EnemySpawner.java # 敌机生成器 ├── ColorScheme.java # 配色方案 └── ImageLoader.java # 图片加载器 ``` ## 技术特点 - 使用Java Swing实现图形界面 - 60 FPS游戏循环 - 碰撞检测系统(矩形和圆形) - 敌机智能生成系统 - 支持图片资源和默认几何图形双模式 ## 开发说明 - JDK版本: 8或更高 - 无需额外依赖库 - 使用Swing Timer实现游戏循环 - 单线程设计,避免并发问题