Skip to content

The-niceU/Slime-Frenzy

Repository files navigation

🎮 史莱姆狂潮:最后的防线 | Slime Frenzy: Last Stand

一款充满挑战的 Python + Pygame 塔防游戏,策略性地放置防御塔,击退源源不断的怪物浪潮!

Python Pygame License


✨ 核心特性

🏰 9 种独特防御塔
每种塔都有不同的攻击方式与两条升级路线,需要你精心选择与升级。

🎯 10+ 种怪物类型
从基础小兵到终极 Boss,每种怪物都有独特的属性与特殊能力。

🗺️ 多种游戏地图
Classic(经典蛇形)与 Twisty Towers(复杂多转折)两大地图考验你的防御策略。

⚙️ 多难度设置
Easy(简单)、Medium(中等)、Hard(困难)三档难度,满足不同技能玩家。

💾 自动存档系统
每波结束自动保存进度,支持继续游戏功能。

🎨 高清 UI 与音效
专业的界面设计与背景音乐,沉浸式游戏体验。


🚀 快速开始

环境要求

  • Python 3.8 或更高版本
  • Pygame 2.5.2

一键启动

# 1. 克隆仓库
git clone <your-repo-url>
cd 史莱姆狂潮:最后的防线

# 2. 安装依赖
pip install -r requirements.txt

# 3. 运行游戏
python main.py

使用虚拟环境(推荐):

python -m venv .venv
.\.venv\Scripts\activate  # Windows
source .venv/bin/activate # macOS/Linux
pip install -r requirements.txt
python main.py

🎮 游戏玩法

基本目标

  • 🛡️ 防止怪物到达终点
  • 💰 管理有限的现金资源
  • 🌊 生存尽可能多的波次

核心机制

元素 说明
现金 💵 通过击杀怪物和升级获得,用于购买与升级防御塔
生命值 ❤️ 初始 100,000,每只怪物到达终点扣除相应血量
防御塔 9 种塔可选,每种有 2 条升级路线
怪物波次 无限波次,难度随波数递增

键盘操作

按键 功能
左键 选择塔、放置塔、激活技能
Shift/Ctrl + 左键 快速连续放置相同塔
空格键 切换游戏速度(1x → 2x → 暂停)
右键 删除已放置的塔

🏗️ 项目结构

📦 史莱姆狂潮:最后的防线
├── 📄 main.py              # 游戏主循环
├── 📄 mainMenu.py          # 菜单与设置
├── 📄 tower.py             # 防御塔与投射物
├── 📄 monsters.py          # 怪物逻辑
├── 📄 waves.py             # 波次生成
├── 📂 assets/              # 游戏资源
│   ├── 📂 images/          # 游戏图片
│   ├── 📂 audio/           # 背景音乐与音效
│   └── 📂 fonts/           # 游戏字体
├── 📂 data/                # 数据与文档
│   ├── 📂 saves/           # 用户存档
│   └── 📂 docs/            # 游戏说明
├── 📄 requirements.txt     # Python 依赖
├── 📄 .gitignore           # Git 忽略规则
└── 📄 README.md            # 详细文档

🎯 防御塔概览

塔名 成本 攻击方式 特点
🔴 飞镖塔 100 单体快速攻击 基础防御,高射速
🔵 忍者塔 200 投掷飞镖 隐身检测,穿透力强
🟡 火焰塔 300 范围燃烧 点燃敌人,持续伤害
🔷 冰塔 400 冰冻减速 控制能力,可减速敌人
⚫ 爆炸工厂 500 随机爆炸 群伤能力,可混乱敌人
💚 金钱塔 600 产出金币 经济收益,辅助塔
💜 回旋塔 700 圆周运动 范围伤害,高爆发
💙 超级塔 1500 综合强力 终极防御,全能型
🖤 炮塔 300 单体轰击 高伤害,低射速

📊 怪物类型

怪物 速度 特殊能力
红色
蓝色 ⭐⭐
绿色 ⭐⭐⭐
黄色 ⭐⭐⭐⭐
粉色 ⭐⭐⭐⭐⭐
黑色 ⭐⭐ 死亡分裂(→ 粉色 × 2)
铅色 仅火焰/冰塔可击杀
紫色 ⭐⭐ 死亡分裂(→ 绿色精英 × 4)
🟢 精英怪 血量厚(3 HP)
👹 Boss 血量极厚(10 HP),死亡分裂 × 4

💡 游戏建议

新手建议

  1. 从 Easy 难度开始熟悉游戏机制
  2. 优先建造快速塔(飞镖塔)进行防御
  3. 早期积累资金,为中期升级做准备
  4. 观察怪物类型,针对性地选择防御塔

高手策略

  • 🎯 利用塔的两条升级路线打造不同的防御体系
  • 💰 平衡防御投入与经济产出(金钱塔的价值)
  • 🗺️ 根据地图特性设计最优防御阵地
  • ⚡ 在高难度下学会使用技能进行反转局面

🛠️ 技术栈

  • 语言:Python 3.8+
  • 游戏引擎:Pygame 2.5.2
  • 开发环境:VS Code
  • 版本控制:Git & GitHub

📦 依赖

pygame==2.5.2

查看 requirements.txt 获取完整依赖列表。


🐛 遇到问题?

常见问题

Q: 无法导入 pygame?
A: 确保已安装依赖:pip install -r requirements.txt

Q: 游戏运行卡顿?
A: 这在高波次时很正常,可以尝试 Easy 难度或重启游戏。

Q: 存档在哪里?
A: 存档文件位于 data/saves/ 文件夹下。

提交问题

遇到 Bug 或有功能建议?欢迎提交 Issue


📚 详细文档


🎓 学习资源

本项目展示了以下 Python 编程技能:

  • ✅ 面向对象编程(OOP)
  • ✅ 游戏循环与事件处理
  • ✅ 文件操作与数据持久化
  • ✅ 资源管理与路径处理
  • ✅ 碰撞检测与物理计算
  • ✅ UI 设计与用户交互

🤝 贡献

欢迎各种形式的贡献!

  • 🐛 报告 Bug
  • 💡 提出功能建议
  • 📝 改进文档
  • 🎨 美化界面或资源

📄 许可证

本项目采用 MIT License,详见 LICENSE 文件。


👨‍💻 开发者

👤 Winyee


🙏 致谢

感谢所有贡献者、测试者以及 Pygame 社区的支持!


📸 截图

游戏开始界面


⭐ 如果喜欢这个项目,请给个 Star 吧!

About

A 2D tower defense game that defends against slime attacks

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages