Files
drawing-app/GAME_README.md
T

226 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐍 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
```
祝你玩得开心!🐍🎮