Add 经典贪吃蛇游戏 - Pygame 实现的精美贪吃蛇小游戏
This commit is contained in:
+225
@@ -0,0 +1,225 @@
|
||||
# 🐍 Python 经典贪吃蛇游戏
|
||||
|
||||
一个使用 Python 和 Pygame 开发的经典贪吃蛇游戏,画面精美,操作简单有趣!
|
||||
|
||||
## ✨ 游戏特性
|
||||
|
||||
### 🎮 核心玩法
|
||||
- **经典规则** - 控制蛇移动,吃到食物变长
|
||||
- **渐进难度** - 每吃 5 个食物速度加快
|
||||
- **精美画面** - 现代化 UI 设计,蛇有眼睛动画
|
||||
- **流畅操作** - 支持方向键和 WASD 双控制方案
|
||||
|
||||
### 🎨 视觉效果
|
||||
- 深蓝色背景 + 网格线
|
||||
- 绿色蛇身,带眼睛动画
|
||||
- 红色圆形食物,带高光和阴影
|
||||
- 半透明游戏结束/暂停界面
|
||||
- 实时分数和速度显示
|
||||
|
||||
### 🎯 游戏功能
|
||||
- 暂停/继续功能(P 键)
|
||||
- 游戏结束后快速重开(空格键)
|
||||
- 优雅退出(ESC 键)
|
||||
- 碰撞检测(墙壁和自己)
|
||||
- 速度系统(10-25 FPS)
|
||||
|
||||
## 📦 安装依赖
|
||||
|
||||
```bash
|
||||
pip install -r game_requirements.txt
|
||||
```
|
||||
|
||||
或者单独安装:
|
||||
```bash
|
||||
pip install pygame>=2.5.0
|
||||
```
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 方法 1:运行启动文件
|
||||
```bash
|
||||
python play_game.py
|
||||
```
|
||||
|
||||
### 方法 2:直接运行游戏
|
||||
```bash
|
||||
python snake_game.py
|
||||
```
|
||||
|
||||
## 🎮 游戏操作
|
||||
|
||||
| 按键 | 功能 |
|
||||
|------|------|
|
||||
| ↑ / W | 向上移动 |
|
||||
| ↓ / S | 向下移动 |
|
||||
| ← / A | 向左移动 |
|
||||
| → / D | 向右移动 |
|
||||
| P | 暂停/继续游戏 |
|
||||
| 空格 | 游戏结束后重新开始 |
|
||||
| ESC | 退出游戏 |
|
||||
|
||||
## 📖 游戏规则
|
||||
|
||||
1. **目标** - 控制蛇吃到尽可能多的食物
|
||||
2. **得分** - 每个食物 = 10 分
|
||||
3. **加速** - 每吃 5 个食物(50 分),速度提升 2 档
|
||||
4. **失败条件**:
|
||||
- 蛇头撞到墙壁
|
||||
- 蛇头撞到自己的身体
|
||||
5. **最大速度** - 25 FPS(初始速度 10 FPS)
|
||||
|
||||
## 🏆 技巧提示
|
||||
|
||||
### 新手技巧
|
||||
- 开始时速度较慢,熟悉操作
|
||||
- 提前规划路线,不要急转弯
|
||||
- 尽量保持在屏幕中央活动
|
||||
|
||||
### 进阶技巧
|
||||
- 利用墙壁反弹改变方向
|
||||
- 预留足够的转弯空间
|
||||
- 高速时小幅调整方向
|
||||
- 观察蛇头眼睛判断方向
|
||||
|
||||
### 高分策略
|
||||
- 采用"之"字形路线清理食物
|
||||
- 避免把自己逼入死角
|
||||
- 保持蛇身紧凑,留出空间
|
||||
- 后期以生存为主,不要贪心
|
||||
|
||||
## 🎨 游戏画面
|
||||
|
||||
```
|
||||
┌────────────────────────────────────────┐
|
||||
│ Score: 120 Speed: 14 │
|
||||
├────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ●●●●● (蛇) │
|
||||
│ ● │
|
||||
│ ● │
|
||||
│ ●●●● │
|
||||
│ ● │
|
||||
│ ● 🍎 (食物) │
|
||||
│ │
|
||||
│ │
|
||||
└────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 🔧 自定义配置
|
||||
|
||||
### 修改窗口大小
|
||||
编辑 `snake_game.py` 中的初始化参数:
|
||||
```python
|
||||
game = SnakeGame(width=1000, height=800, cell_size=25)
|
||||
```
|
||||
|
||||
### 修改颜色
|
||||
编辑 `snake_game.py` 中的颜色字典:
|
||||
```python
|
||||
self.colors = {
|
||||
'background': (15, 23, 42), # 背景色
|
||||
'snake_head': (34, 197, 94), # 蛇头颜色
|
||||
'snake_body': (22, 163, 74), # 蛇身颜色
|
||||
'food': (239, 68, 68), # 食物颜色
|
||||
# ... 更多颜色
|
||||
}
|
||||
```
|
||||
|
||||
### 修改初始速度
|
||||
```python
|
||||
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
|
||||
|
||||
## 🎉 开始游戏
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
pip install -r game_requirements.txt
|
||||
|
||||
# 运行游戏
|
||||
python play_game.py
|
||||
```
|
||||
|
||||
祝你玩得开心!🐍🎮
|
||||
Reference in New Issue
Block a user