# Thunderfighter **Repository Path**: hpjack/thunderfighter ## Basic Information - **Project Name**: Thunderfighter - **Description**: 软件实训项目雷霆战机 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-12 - **Last Updated**: 2025-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, Qt ## README 该项目是一个基于Qt框架开发的2D飞机射击游戏,名为Thunderfighter。游戏中包含了丰富的素材资源和多个功能模块,以下是项目的结构和主要组件概述: ### 项目结构 - **资源文件夹** - `image/`: 包含游戏所需的各类图像资源,如飞机、子弹、背景、UI界面等。 - `sounds/`: 存放游戏的音频资源,例如背景音乐。 - **源代码文件夹 (`src/`)** - `Bomb.cpp/h`: 爆炸效果类,用于处理游戏中的爆炸动画。 - `Bullet.cpp/h`: 子弹类,用于管理子弹的运动和行为。 - `EnemyPlane.cpp/h`: 敌方飞机类,用于生成和控制敌方飞机的移动。 - `Map.cpp/h`: 地图类,用于管理游戏背景的滚动。 - `MyPushButton.cpp/h`: 自定义按钮类,用于实现游戏中的按钮交互效果。 - `Plane.cpp/h`: 玩家飞机类,用于控制玩家飞机的移动和射击。 - `GameScene.cpp/h`: 游戏场景类,负责游戏主逻辑,包括敌机生成、碰撞检测、玩家操作等。 - `LoginWidget.cpp/h`: 登录界面类,处理用户登录逻辑。 - `MallWidget.cpp/h`: 商店界面类,允许玩家选择不同的飞机皮肤。 - `PauseWidegt.cpp/h`: 暂停界面类,用于游戏暂停时的UI展示。 - `RegisterWidget.cpp/h`: 注册界面类,处理用户注册逻辑。 - `Widget.cpp/h`: 主界面类,可能是游戏的主窗口或菜单界面。 - `main.cpp`: 程序入口,启动Qt应用程序并加载主窗口。 - **其他文件** - `Thunderfighter.pro`: Qt项目的配置文件,定义了项目结构、依赖库等。 - `res.qrc`: Qt资源文件,用于将图像、音频等资源嵌入到可执行文件中。 - `logo.ico` 和 `logo.rc`: 图标和Windows资源文件,用于设置应用程序图标。 - `.ui` 文件:Qt Designer生成的UI布局文件,定义了各个窗口的可视化界面。 ### 主要功能模块 - **游戏主场景 (`GameScene`)** - 实现了游戏的核心逻辑,包括玩家飞机的移动、射击、敌机生成、碰撞检测等。 - 提供了 `playGame()`、`readyGame()`、`updatePosition()`、`enemyToScene()`、`collisionDetection()` 等关键方法来控制游戏流程。 - **用户界面** - **登录界面 (`LoginWidget`):** 提供登录、注册、开始游戏等功能。 - **注册界面 (`RegisterWidget`):** 允许用户注册新账号。 - **商店界面 (`MallWidget`):** 允许玩家选择不同的飞机皮肤。 - **暂停界面 (`PauseWidegt`):** 在游戏暂停时显示相关选项。 - **主界面 (`Widget`):** 可能是游戏的主菜单或初始界面。 - **游戏对象** - **玩家飞机 (`Plane`):** 玩家控制的飞机,可以移动和发射子弹。 - **敌方飞机 (`EnemyPlane`):** 自动生成并朝玩家方向移动的敌机。 - **子弹 (`Bullet`):** 玩家和敌机发射的攻击武器。 - **爆炸效果 (`Bomb`):** 当飞机被击中时显示的爆炸动画。 ### 开发环境 - 使用 **Qt** 框架进行开发,支持跨平台运行(Windows、Linux、macOS)。 - 使用 **C++** 编写代码,结合 Qt 的信号与槽机制实现事件驱动的交互逻辑。 ### 如何运行 1. 确保已安装 **Qt 开发环境**(如 Qt Creator)。 2. 打开 `Thunderfighter.pro` 文件,加载项目。 3. 构建并运行项目,游戏将自动启动主界面。 4. 通过鼠标点击或键盘控制玩家飞机进行游戏。 ### 注意事项 - 项目中包含大量图像和音频资源,确保资源文件路径正确,或使用 `res.qrc` 文件将资源嵌入到可执行文件中。 - 如果需要扩展游戏功能,可以在 `GameScene` 类中添加新的游戏逻辑,或在 `MyPushButton` 中实现更多交互效果。 该项目适合用于学习 Qt 游戏开发、C++ 面向对象编程以及游戏逻辑设计。