{"repo":"skywind3000/GameLib","free":true,"listed":false,"github":"https://github.com/skywind3000/GameLib","clone":"git clone https://github.com/skywind3000/GameLib.git","description":"Single-header C++ Game Library for Beginners — no SDL/DirectX/OpenGL, no setup, just include and play.","language":"C++","stars":492,"topics":["game-developement","game-engine","game-engine-2d","cpp","graphics","linux","video-game","wasm","windows"],"license":"MIT","category":"game-templates","readme_excerpt":"GameLib.h 给 C++ 初学者的游戏开发库 —— 单个头文件，零配置，拷贝即用。 学 C++ 最痛苦的是什么？几周下来只能在黑窗口里 cout 一行字。想用 SDL、SFML？光配环境就劝退一半人。GameLib 就是为了干掉这段痛苦：把 GameLib.h 丢进项目文件夹，写句 #include \"GameLib.h\" ，十行代码就能画出能用键盘操控的彩色圆。窗口、绘图、键盘、鼠标、精灵、声音、碰撞检测全都有，不需要下载 SDK，不需要配置路径，不需要链接任何库。 十行代码做个游戏 快速上手 第一步 — 下载 GameLib.h ，放到项目文件夹。 第二步 — 创建 main.cpp ，写上方的代码。 第三步 — 编译运行： Dev C++ 用户：新建项目 添加 main.cpp 编译运行，完事。 不需要 -lgdi32 -lwinmm 等任何链接参数，所有依赖由库内动态加载，连参数 -mwindows 都是可选的（不加的话会有控制台窗口）。 为什么做这个？ 市面上的游戏库（SDL、SFML、raylib）都很好，但对于刚接触 C++ 的初学者来说： - SDL 要配置头文件路径、链接十几个 dll，使用复杂 - SFML 要用 CMake - raylib 需要懂线性代数，三维基础知识，熟练 C/C++，还需编译/安装。 GameLib 的目标是零门槛 ：把 GameLib.h 拷到项目文件夹，写一个 .cpp 文件，点编译，游戏就跑起来了。 它专门为 Dev C++ （很多学校编程课在用的 IDE）设计，兼容其自带的 GCC 4.9.2 编译器。当然，任何支持 C++11 的 Windows 编译器都可以用。 特性亮点 - 零配置 — 单头文件拷贝即用，无需安装/链接任何库，兼容 GCC 4.9.2（Dev C++） - 开箱绘图 — 点、线、矩形、圆、椭圆、三角（描边+填充），内置 8×8 像素字体，支持可缩放字体和 UTF-8 - 精灵系统 — 整数 ID 管理，无需处理指针和资源释放，加载 PNG/JPG/BMP，帧动画/翻转/缩放/旋转/Alpha 混合 - 键盘鼠标 — 按住/按下/松开检测，鼠标三键+滚轮，窗口失焦暂停 - 声音 — WAV 音效 + MP3/MIDI 背景音乐，独立通道互不干扰 - 碰撞检测 — 矩形重叠、圆碰撞、两点距离 - Tilemap — 双层瓦片地图、视差滚动、只渲染可见区域，保存/载入 .glm 数据 - 窗口缩放 — resizable 窗口自动拉伸，鼠标坐标自动映射回逻辑坐标 - 场景管理 — 整数标识场景， switch 即可实现菜单→游戏→结算切换 - 存档读写 — SaveInt/LoadInt 等一行代码存取，纯文本 key=value 格式 - UI 控件 — Button、Checkbox、RadioBox、ToggleButton，即时模式零依赖 - 跨平台 — SDL2 版 GameLib.SDL.h 支持 Linux/macOS/Web（详见 SDL2PORT.md) 适合做什么？ - 太空射击 / 横版卷轴 / 俄罗斯方块 / 贪吃蛇 / 打砖块 - 走迷宫 / 接水果 / 弹幕游戏 - 回合制 RPG / 视觉小说 / 地图编辑器 / 画板程序 - 课程作业演示（零配置交付） - 任何你想得到的 2D 游戏或互动程序 真实案例 使用 GameLib 制作的《Geometry Wars》游戏，玩起来精彩刺激，但 GIF 录屏效果损失太大，可以 点击试玩网页版 或者 访","default_branch":null,"files":null,"tree":[],"storefront":"/r/skywind3000","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/skywind3000/GameLib/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}