Skip to content

bolt2012-china/SnakeGame

Repository files navigation

French Fries Snake 🐍🍟

⚡️ 本项目基于 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蛇会死亡。
  • 地图会出现障碍物(垃圾桶),需要小心规避。
  • 加速机制:长按当前移动方向键可加速移动,加速状态下撞障碍会有特殊处理(见下)。
  • 👑每局游戏有得分和长度统计,右侧显示每局的最高分记录。

各模式特色机制

1. 关卡模式(Level Mode)

  • 通用基础:只有一条命,任何一次碰撞都直接 Game Over。
  • 关卡目标:吃满一定数量普通食物🍟即可通关。
  • 地图变化:每增加五分自动切换新形状的边界,包括圆形、菱形,需进入中心区域激活新地图。
  • 障碍机制:难度提升时障碍数量增加;加速状态下撞障碍会扣分并缩短蛇身,但不会直接死亡。

2. 能量轨道模式(Energy Track Mode)

  • 新增机制
    • 生命值:初始一点生命,上限三点生命值,每撞一次墙/障碍/自己扣一点,掉光即 Game Over。
    • 回血食物:出现心形食物 ❤,吃到可恢复一点生命值,生命值为3时 ❤ 暂时不出现。
    • 能量轨道:地图中生成两条高亮能量轨道,蛇需沿轨道首尾连续通过,完成可获得高额分数奖励。
  • 地图:矩形。

3. 传送门模式(Portal Mode)

  • 新增机制
    • 传送门食物:地图上出现一对“传送门”食物🍎,先吃入口后,蛇会瞬间传送到出口并再次增长、加分。
  • 生命值&回血食物
  • 地图:矩形

4. 分数模式(Points Mode / Endless Mode)

  • 新增机制
    • 无限挑战:无关卡终点,目标是追求更高分数。
    • 四种食物:四种分值不同的食物:🍟 🍕 🍗 🍔 ,吃到相应得分。
    • 单向传送隧道:每获得50分刷新出两个“单向传送隧道”,通过可瞬间获得高额奖励分。
  • 生命值&回血食物
  • 地图:矩形

进阶玩法与机制

  • 加速穿障碍:任意模式长按当前方向键可加速移动。加速状态下撞障碍不会直接死亡,而是扣分和缩短蛇身(高分冲榜必备技巧)。
  • 暂停与恢复:点击右侧“Pause”按钮或菜单可随时暂停,暂停后可选择返回主菜单或退出。
  • 模式解锁:需按顺序通关前一模式后,自动解锁下一模式。
  • 得分与历史记录:每种模式独立统计最高分,记录保存在 highscores.txt,随时在侧边栏查看。

文件结构说明

assets/           # 所有图片、音效、字体资源
main.cpp          # 入口文件
GameApp.h/cpp     # 应用状态机
GameSFML.h/cpp    # 主要游戏逻辑
snake.h/cpp       # 蛇的模型与运动
StartScreen.h/cpp # 启动画面与菜单
Overlay.h/cpp     # 蒙版动画和提示
...
highscores.txt    # 各模式最高分记录

About

大作业贪吃蛇游戏

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages