⚡️ 本项目基于 SFML 3.0 开发,所有功能和资源均适配 SFML 3.0。请务必使用 SFML 3.0 及以上版本编译运行,否则部分接口和表现可能不兼容!
本项目为基于 SFML 3.0 实现的经典贪吃蛇游戏进阶版。
支持多种创新玩法模式、障碍物、生命值机制、传送门与能量轨道,逐步解锁、乐趣丰富。
- 必须依赖:
- SFML 3.0 及以上版本
- 推荐 C++17 或更高标准编译器(如 g++/clang++/MSVC)
- 资源说明:
- 所有图片、音效、字体素材请保留在
assets目录下
- 所有图片、音效、字体素材请保留在
- 编译与运行:
- 本项目已自带 Makefile,支持一键编译和运行
- 运行提示:
- 需配置 SFML 3.0 的头文件和库依赖,见官方文档
-
WASD 或 方向键:控制蛇移动(上/下/左/右)
-
鼠标:菜单选择、暂停/恢复、主菜单、退出等
- 玩家控制蛇在棋盘上移动,吃掉食物🍟使蛇变长并获得分数。
- 撞墙、撞自己 或 撞障碍物 会导致蛇损失生命值,生命值低于1蛇会死亡。
- 地图会出现障碍物(垃圾桶),需要小心规避。
- 加速机制:长按当前移动方向键可加速移动,加速状态下撞障碍会有特殊处理(见下)。
- 👑每局游戏有得分和长度统计,右侧显示每局的最高分记录。
- 通用基础:只有一条命,任何一次碰撞都直接 Game Over。
- 关卡目标:吃满一定数量普通食物🍟即可通关。
- 地图变化:每增加五分自动切换新形状的边界,包括圆形、菱形,需进入中心区域激活新地图。
- 障碍机制:难度提升时障碍数量增加;加速状态下撞障碍会扣分并缩短蛇身,但不会直接死亡。
- 新增机制:
- 生命值:初始一点生命,上限三点生命值,每撞一次墙/障碍/自己扣一点,掉光即 Game Over。
- 回血食物:出现心形食物 ❤,吃到可恢复一点生命值,生命值为3时 ❤ 暂时不出现。
- 能量轨道:地图中生成两条高亮能量轨道,蛇需沿轨道首尾连续通过,完成可获得高额分数奖励。
- 地图:矩形。
- 新增机制:
- 传送门食物:地图上出现一对“传送门”食物🍎,先吃入口后,蛇会瞬间传送到出口并再次增长、加分。
- 生命值&回血食物
- 地图:矩形
- 新增机制:
- 无限挑战:无关卡终点,目标是追求更高分数。
- 四种食物:四种分值不同的食物:🍟 🍕 🍗 🍔 ,吃到相应得分。
- 单向传送隧道:每获得50分刷新出两个“单向传送隧道”,通过可瞬间获得高额奖励分。
- 生命值&回血食物
- 地图:矩形
- 加速穿障碍:任意模式长按当前方向键可加速移动。加速状态下撞障碍不会直接死亡,而是扣分和缩短蛇身(高分冲榜必备技巧)。
- 暂停与恢复:点击右侧“Pause”按钮或菜单可随时暂停,暂停后可选择返回主菜单或退出。
- 模式解锁:需按顺序通关前一模式后,自动解锁下一模式。
- 得分与历史记录:每种模式独立统计最高分,记录保存在
highscores.txt,随时在侧边栏查看。
assets/ # 所有图片、音效、字体资源
main.cpp # 入口文件
GameApp.h/cpp # 应用状态机
GameSFML.h/cpp # 主要游戏逻辑
snake.h/cpp # 蛇的模型与运动
StartScreen.h/cpp # 启动画面与菜单
Overlay.h/cpp # 蒙版动画和提示
...
highscores.txt # 各模式最高分记录