# SuperMario **Repository Path**: flyqingfeng/SuperMario ## Basic Information - **Project Name**: SuperMario - **Description**: 使用raylib复刻超级马里奥 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-08 - **Last Updated**: 2026-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SuperMario 基于自己写的 C++ 游戏引擎复刻的 Super Mario 横版平台跳跃游戏。 ## 技术栈 - **语言**: C++20 - **图形/音频**: [raylib](https://www.raylib.com/) v5.5(源码现场编译) - **JSON 解析**: [cJSON](https://github.com/DaveGamble/cJSON) - **构建系统**: CMake 3.16+ ## 项目结构 ``` SuperMario/ ├── CMakeLists.txt # 顶层 CMake ├── Engine/ # 自研游戏引擎(GameEngine) │ ├── CMakeLists.txt │ ├── include/ # 引擎对外头文件 │ ├── src/ # 引擎源码 │ │ ├── Actor/ # 游戏对象系统(Actor/Sprite/GameObject) │ │ ├── Component/ # 组件系统(Transform/Physics/Gravity) │ │ ├── Scene/ # 场景系统(2D/3D) │ │ ├── System/ │ │ │ ├── Animation/ # 精灵动画 │ │ │ ├── StateMachine/ # 状态机 │ │ │ ├── Physic/ # 2D 物理管理 │ │ │ ├── EventBus/ # 事件总线 │ │ │ └── UI/ # UI 系统 │ │ ├── Audio/ # 音频管理 │ │ └── Utils/ # 工具类(文件/资源/JSON) │ └── libs/ │ ├── raylib-src/ # raylib 源码(首次需 clone) │ ├── raylib-cpp/ # raylib C++ 封装(头文件库) │ └── cjson/ # cJSON 源码 ├── Game/ # 游戏层 │ ├── CMakeLists.txt │ └── src/ │ ├── GameMain.cpp # 程序入口 main() │ ├── Game/ # 游戏主类 │ ├── Scenes/ # 场景(主界面/关卡) │ └── Entities/ # 实体(Player 及其动画状态机) └── assets/ # 游戏资源(图片/音频/关卡配置) ``` ## 构建 ### 环境要求 - CMake 3.16+ - 支持 C++20 的编译器(MinGW-w64 / MSVC / GCC / Clang) - Git(用于克隆 raylib 源码) ### 获取 raylib 源码 首次构建前,需要拉取 raylib 源码到本地: ```bash git clone --depth 1 --branch 5.5 https://gitee.com/mirrors/raylib.git Engine/libs/raylib-src ``` > 国内推荐使用 Gitee 镜像;若能直连 GitHub,可用 `https://github.com/raysan5/raylib.git`。 ### 编译 ```bash mkdir build && cd build cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug cmake --build . -j 18 ``` 或使用 CLion 直接打开项目,选择对应工具链后 Reload CMake Project 并 Build。 ## 引擎模块 | 模块 | 说明 | |------|------| | Actor | Actor-Component 游戏对象模型 | | Component | Transform2D / PhysicsBody2D / Gravity 等组件 | | Scene | 场景管理和生命周期 | | Animation | 基于帧的精灵动画系统 | | StateMachine | 有限状态机(用于角色状态切换) | | Physic | 2D 碰撞检测与物理管理 | | UI | 完整的 UI 控件系统(Widget/Layout/Input) | | EventBus | 发布-订阅事件系统 | | Audio | 音频播放管理(基于 raylib) | | AssetManager | 资源加载与缓存 | ## 运行 窗口分辨率 1200x600,目标帧率 60 FPS。启动后进入主界面,可以开始游戏。 ## 许可证 MIT License