<!-- title: 《PythonPlantsVsZombies》十七年了，草坪还在收钱 -->
<!-- domain: games -->
<!-- repo: marblexu/PythonPlantsVsZombies -->

先把数据口径交代清楚：本篇的 Star 数、License 状态以仓库页面实时数据为准，核实不到的字段直接省略、不做估计；玩法与技术描述基于仓库公开内容与中文社区的公开介绍。

## 仓库档案

| 项目 | 信息 |
| --- | --- |
| 仓库 | `marblexu/PythonPlantsVsZombies` |
| ⭐ Star | 约 4k 量级（以仓库页面为准） |
| 主语言 | Python，基于 pygame |
| 作者 | marblexu，个人开发者，中文技术社区因这个项目认识他 |
| 活跃度 | 老仓库，近年维护频率低，社区贡献以修复和小功能为主（以仓库页面为准） |
| 玩法标签 | 塔防 + 卡牌部署 + 波次生存 |
| 上手 | 无在线 Demo，装好 pygame 后 clone 即玩 |

先把话说在前面：这是一个“抄作业”性质的学习仓库——把《植物大战僵尸》的玩法用 Python 完整重写了一遍，贴图素材来自原作，作者定位就是学习项目，不建议直接商用。但它的价值恰恰在这里：**史上最赚钱的塔防玩法，被拍扁成几千行可读的 Python，阳光经济怎么调、波次怎么排、卡片冷却怎么卡，全部摆在桌面上**。对想入局游戏变现的个人开发者，这种“把品类骨架拍成教学片”的仓库，比十篇塔防设计文章都管用。

## 这游戏是什么

一句话：**僵尸从右边来，你在 5×9 的草坪网格上，用阳光买植物、按冷却放卡片，把僵尸挡在屋子外面——守不住就重开，守住了就解锁新植物打下一关。**

三个词概括这套玩法：塔防是底盘，经济是节拍器，收集是长线。它和传统塔防（放塔、等怪、升级）最大的区别是两套资源限制叠加：**阳光是“钱”**，种植物要花钱，钱靠天上掉的加向日葵产的，你永远在“种向日葵攒钱”和“种豌豆保命”之间反复横跳；**卡片冷却是“节拍”**，刚放下一棵樱桃炸弹，下一棵要等几十秒，爆发手段是稀缺的。两套限制摞在一起，每一次部署都是取舍，没有一步是可以无脑走的。

**核心循环一张图：**

```mermaid
flowchart TD
    A[阳光落下 向日葵加倍产出] --> B[点击收集 攒经济]
    B --> C[花阳光种植物 布防线]
    C --> D[僵尸按波次进攻]
    D --> E{守住这一波}
    E -- 是 --> F[过波解锁新植物卡 更新图鉴]
    F --> G[下一波更凶 重新取舍]
    G --> B
    E -- 某行被突破 --> H[动用小推车清场 每行只有一次]
    H --> B
    E -- 推车用光 --> I[僵尸进屋 本关失败]
    I --> J[复盘换卡组 重开]
    J --> B
```

注意图上那个“小推车”分支——它是整个游戏的心脏级设计：每一行开局送一辆小推车，僵尸摸到最左边就自动清场保命，但每行只有一次。这意味着失败不是瞬间的，是“你眼看着第三行的推车用掉了、第五行也开始漏怪”的渐进崩盘。**渐进式崩盘加一次性的免死金牌，是“再来一局”冲动的最大来源**——死掉的时候，你永远觉得就差那么一辆车。

## 为什么上头

**第一，双资源限制把节奏焊死了。** 阳光经济是经典的“投资未来还是保住当下”：种向日葵是扩大再生产，种豌豆射手是当期防御，钱只有一份。这个取舍被压缩到每三秒决策一次，配合点击收集阳光的即时反馈，玩家手上永远有事做、脑里永远有权衡做。卡片冷却则负责锁住爆发：再有钱，樱桃炸弹也得等转圈结束。经济管下限，冷却管上限，两条绳一起拉，节奏就不会散。

**第二，全信息明棋，输了自己认。** 棋盘上没有战争迷雾：僵尸的血量、位置、你方布局，全摊在桌面上。输赢只取决于部署质量，玩家会把失败归因于“我樱桃炸弹放早了”，而不是“运气不好”。归因到自己头上，才有复盘欲；有复盘欲，才有“这把稳了”的下一次。这是策略游戏留存的底层逻辑：**把锅判给玩家，把进步感也判给玩家。**

**第三，“一大波僵尸正在接近”。** 波次进度条加最后一波的红字预告，是教科书级的节奏设计：预告——等待——爆发，三段式把多巴胺的释放点安排得明明白白。等待期恰好用来补经济、补防线，紧张感和操作量被自动错峰。这套张弛结构今天在无数波次类小游戏里都能看到影子，源头就在这块草坪上。

**第四，小推车：被设计出来的“就差一点”。** 行为经济学里，失去的痛感约是同等收获快感的两倍。每行一次的免死金牌把损失变成分段事件：推车用掉那一刻，紧张感立刻上调一档，玩家进入“止损模式”而不是“放弃模式”。崩盘是渐进的，希望是持续的——玩家始终觉得下一波能稳住。这种“还能抢救”的错觉，就是单局时长和重开率的放大器。

**第五，收集线把单局胜利续成长线动机。** 每过一关解锁新植物、图鉴往前挪一格，原作甚至用禅境花园和迷你游戏给收集欲加了第二层容器。单局十五到二十分钟，重开成本约等于零，损失感为零但期待感满格——“再打一关”在这个品类里从来不是口号，是设计出来的。

## 技术拆解

纯 pygame 实现，没有游戏引擎，这是它最值得拆的地方：

- **主循环是游戏开发的最小完整样本**：帧率控制、事件队列、状态更新、批量渲染，四件事在一个循环里各就各位。没写过游戏的人，读完这个循环就懂了游戏和网页应用的本质区别——它不是“响应输入”，是“每帧都在活”。
- **精灵组管理上百个活动对象**：植物、僵尸、豌豆、阳光各自成组，批量更新、批量绘制、矩形碰撞盒做判定。僵尸啃植物、子弹打僵尸，都是 O(网格) 级别的简单检测——塔防品类根本不需要物理引擎，别被吓住。
- **扩展模型是“加内容不动引擎”**：植物做成基类加子类，血量、花费、冷却、贴图各就各位，新增一种植物就是继承一个类挂一张图。想验证自己游戏“内容能不能持续加”，就看引擎和内容分没分家——这个仓库分得很干净。
- **关卡配置化**：出怪波次、僵尸种类、节奏参数放在数据里，改关卡不改代码。这是上线后做“每日关卡”“活动关卡”的地基，个人开发者最容易省略、后来补得最痛的一环。
- **代码量级友好**：总量几千行 Python，一个周末能通读。同样的时间读商业引擎源码，你可能还在装环境。

可直接复用的零件：网格与坐标换算、波次生成器、卡片冷却系统、阳光经济数值曲线、小推车兜底逻辑。这五块是所有守家类游戏的地基，换成任何题材都成立。想上微信小游戏或 H5，逻辑层照搬、渲染层换成 Canvas 或 PIXI 即可；想发桌面版，pygame 打包 exe 直接上 itch。

## 变现观察

仓库本身没有任何变现，素材来自原作，IP 红线写得清清楚楚——学习免费，商用自己解决素材和授权。真正值得看的是它背后那条变现史：

- **原作十七年收租路**：2009 年 5 月宝开发售，内部小团队磨了三年多；2011 年 EA 收购宝开，交易总额最高约 13 亿美元；2012 年游戏之父 George Fan 离开 EA——“最赚钱的 IP，亲爹出局”成了行业著名公案。之后 IP 转免费加内购的长线模式，一路收到今天。一个玩法的寿命可以比一家公司的组织结构长，这是塔防品类最硬的底气。
- **品类天花板被反复验证**：Bloons TD 6 靠付费买断加持续更新，在移动和 Steam 两端长青十年；《明日方舟》证明“塔防骨架加抽卡皮肤”能撑起头部流水。塔防不是小品类，是久经考验的收租品类。
- **个人开发者的现实路径**：微信小游戏和 H5 走广告——激励视频（复活一次、空投阳光、冷却清零）是塔防转化率最高的广告位，插屏垫量；itch.io 走 5 到 15 美元买断，塔防标签下小体量作品一直有稳定买家；Steam 抢先体验的门槛是要加 meta 层（肉鸽、每日挑战），纯守家很难卖。
- **一条红线要划清**：玩法机制不受版权保护，思路可以抄；美术、名称、音乐受保护，素材必须原创或 AI 生成。marblexu 这个仓库能安心活着，靠的是学习项目身份；你拿去变现，就得把皮全换掉。

## 给我的灵感

**点子一：梗题材守家，两周半，微信小游戏。** 网格、阳光经济、冷却全照搬，题材换成“守工位防需求”——豌豆射手是咖啡机，坚果墙是工位绿萝，僵尸是来提需求的产品经理。中文梗题材自带截图传播，逻辑层几乎不动，工作量大头在数值重调和美术替换。变现靠激励视频复活加插屏。

**点子二：塔防乘肉鸽，三到四周，itch 起步。** 在骨架上加一层“每波结束三选一强化”：豌豆分裂、坚果反伤、向日葵暴击，单局变化率翻十倍。Steam 上肉鸽塔防近年是被验证的付费品类，图鉴加局外解锁做长线。这是把波次生成器改造成参数化增益池的活，适合已经跑通点子一的人加码。

**点子三：每日布局挑战，两周，网页加排行榜。** 每天全网同一张种子地图、同一套卡组，比谁剩余血量多、谁用的时间短，结束生成分享卡——“第 47 天，我在夜市图活到了第 12 波”。日更钩子加社交攀比，是 wordle 打法在塔防上的平移，SEO 还能持续吃“每日塔防挑战”的长尾流量。变现走网页广告加去广告内购。

## 上手

- 仓库：`https://github.com/marblexu/PythonPlantsVsZombies`
- 运行：Python 3 环境 `pip install pygame`，clone 后按仓库 README 跑起来
- 阅读顺序建议：先跑起来，再读主循环，然后读植物类继承，最后读关卡配置——一个下午通读完，你手里就多了一套塔防地基

十七年过去，草坪上那套“经济、冷却、波次”三件套，依然是小游戏平台最稳的收租配方——区别只是，这一次该由你来决定草坪上种什么。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
