Files
drawing-app/GAME_README.md

5.5 KiB
Raw Permalink Blame History

🐍 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 退出游戏

📖 游戏规则

  1. 目标 - 控制蛇吃到尽可能多的食物
  2. 得分 - 每个食物 = 10 分
  3. 加速 - 每吃 5 个食物(50 分),速度提升 2 档
  4. 失败条件:
    • 蛇头撞到墙壁
    • 蛇头撞到自己的身体
  5. 最大速度 - 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

祝你玩得开心!🐍🎮