5.5 KiB
5.5 KiB
🐍 Python 经典贪吃蛇游戏
一个使用 Python 和 Pygame 开发的经典贪吃蛇游戏,画面精美,操作简单有趣!
✨ 游戏特性
🎮 核心玩法
- 经典规则 - 控制蛇移动,吃到食物变长
- 渐进难度 - 每吃 5 个食物速度加快
- 精美画面 - 现代化 UI 设计,蛇有眼睛动画
- 流畅操作 - 支持方向键和 WASD 双控制方案
🎨 视觉效果
- 深蓝色背景 + 网格线
- 绿色蛇身,带眼睛动画
- 红色圆形食物,带高光和阴影
- 半透明游戏结束/暂停界面
- 实时分数和速度显示
🎯 游戏功能
- 暂停/继续功能(P 键)
- 游戏结束后快速重开(空格键)
- 优雅退出(ESC 键)
- 碰撞检测(墙壁和自己)
- 速度系统(10-25 FPS)
📦 安装依赖
pip install -r game_requirements.txt
或者单独安装:
pip install pygame>=2.5.0
🚀 快速开始
方法 1:运行启动文件
python play_game.py
方法 2:直接运行游戏
python snake_game.py
🎮 游戏操作
| 按键 | 功能 |
|---|---|
| ↑ / W | 向上移动 |
| ↓ / S | 向下移动 |
| ← / A | 向左移动 |
| → / D | 向右移动 |
| P | 暂停/继续游戏 |
| 空格 | 游戏结束后重新开始 |
| ESC | 退出游戏 |
📖 游戏规则
- 目标 - 控制蛇吃到尽可能多的食物
- 得分 - 每个食物 = 10 分
- 加速 - 每吃 5 个食物(50 分),速度提升 2 档
- 失败条件:
- 蛇头撞到墙壁
- 蛇头撞到自己的身体
- 最大速度 - 25 FPS(初始速度 10 FPS)
🏆 技巧提示
新手技巧
- 开始时速度较慢,熟悉操作
- 提前规划路线,不要急转弯
- 尽量保持在屏幕中央活动
进阶技巧
- 利用墙壁反弹改变方向
- 预留足够的转弯空间
- 高速时小幅调整方向
- 观察蛇头眼睛判断方向
高分策略
- 采用"之"字形路线清理食物
- 避免把自己逼入死角
- 保持蛇身紧凑,留出空间
- 后期以生存为主,不要贪心
🎨 游戏画面
┌────────────────────────────────────────┐
│ Score: 120 Speed: 14 │
├────────────────────────────────────────┤
│ │
│ ●●●●● (蛇) │
│ ● │
│ ● │
│ ●●●● │
│ ● │
│ ● 🍎 (食物) │
│ │
│ │
└────────────────────────────────────────┘
🔧 自定义配置
修改窗口大小
编辑 snake_game.py 中的初始化参数:
game = SnakeGame(width=1000, height=800, cell_size=25)
修改颜色
编辑 snake_game.py 中的颜色字典:
self.colors = {
'background': (15, 23, 42), # 背景色
'snake_head': (34, 197, 94), # 蛇头颜色
'snake_body': (22, 163, 74), # 蛇身颜色
'food': (239, 68, 68), # 食物颜色
# ... 更多颜色
}
修改初始速度
self.speed = 15 # 改为 15 FPS
🐛 常见问题
Q: 游戏窗口打不开?
A: 确保已安装 Pygame:pip install pygame
Q: 按键没反应?
A: 确保游戏窗口处于焦点状态,点击窗口后再操作
Q: 游戏太慢/太快?
A: 修改 self.speed = 10 调整初始速度
Q: 想要更大/更小的蛇?
A: 修改 cell_size = 20 调整格子大小
🎯 扩展计划
- 添加音效和背景音乐
- 多种难度选择
- 排行榜系统
- 多种蛇皮肤
- 双人模式
- 特殊道具(加速、减速、穿墙)
- 地图编辑器
- 录像回放功能
💻 技术实现
核心技术
- Pygame - 游戏引擎和渲染
- 网格系统 - 基于网格的移动和碰撞检测
- 队列数据结构 - 蛇身管理
- 事件驱动 - 键盘输入处理
性能优化
- 只重绘变化的部分
- 使用矩形碰撞检测
- 帧率控制保证流畅性
代码结构
SnakeGame
├── __init__() # 初始化
├── reset_game() # 重置游戏
├── _generate_food() # 生成食物
├── _handle_events() # 处理事件
├── _update() # 更新状态
├── _check_collision() # 碰撞检测
├── _draw_grid() # 绘制网格
├── _draw_snake() # 绘制蛇
├── _draw_food() # 绘制食物
├── _draw_score() # 绘制分数
├── _draw_game_over() # 游戏结束画面
├── _draw_paused() # 暂停画面
├── draw() # 总绘制
└── run() # 主循环
📝 版本历史
v1.0.0
- ✅ 基础游戏功能
- ✅ 精美 UI 界面
- ✅ 蛇眼睛动画
- ✅ 暂停/继续功能
- ✅ 速度系统
- ✅ 碰撞检测
🎓 学习价值
通过这个游戏可以学习:
- Pygame 基础使用
- 游戏循环设计
- 碰撞检测算法
- 事件处理机制
- 面向对象编程
- 动画原理
📄 许可证
MIT License
🎉 开始游戏
# 安装依赖
pip install -r game_requirements.txt
# 运行游戏
python play_game.py
祝你玩得开心!🐍🎮