本页目录

救援先生(Mr. Rescue)—— LÖVE 街机风消防救人游戏

mrrescue · SimonLarsen/mrrescue

由 Tangram Games 开发、使用 LÖVE 框架制作的 2D 街机风动作游戏。玩家扮演消防员,在伪随机生成的着火建筑中扑火,把平民扛起并从窗口抛出以完成疏散,游戏包含 Boss 战与配乐。1.02 版加入 XBox 360 手柄支持与全屏模式。运行需先安装...

动作游戏 RPG 射击 Pygame Python 角色控制 关卡管理 游戏状态管理 UI 系统 中级
★ Stars 68 Forks 20 License 未明确 更新 2026-06-29

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
未知
引擎 / 框架:Pygame 暂无中文教程标记 未标记站长实测
依赖 pygame、pytmx、pyscroll,pip 安装时可换用国内镜像源加速;README 中的 apt-get install python-pygame python-pip 为 Debian 系旧版包名,当前 Python 3 环境未必可用,建议直接 pip 安装并自行调整启动入口;从 GitHub Releases 下载 Linux/Windows 可执行包时网络可能较慢,需自备加速手段。

中文项目介绍

Chaos Projectile 是一个由个人开发者主导、以 Python 与 pygame 为基础实现的二维动作街机项目,作者在 README 中把它概括为「Run 'n' Gun meets RPG」——也就是把横版跑射(run and gun)的快节奏射击,与带有永久成长的角色扮演要素结合起来。它并非关卡线性推进的纯射击游戏,玩家在推进过程中做出的路线选择会沉淀为角色能力,属于那种「一局之内很动作、跨关卡很养成」的混合设计。项目当前仍处于开发状态,作者用 “currently in development” 明确标注了这一点,仓库中同时提供了美术截图与已构建的可执行版本,供玩家直接试玩。

玩法层面最核心的机制是「多出口关卡」。每一个关卡都不止一个离开的通道,玩家走向哪个出口,会决定接下来角色获得什么样的属性变化,或者解锁哪一种新的动作能力。也就是说,出口选择本身即是成长树的分支节点:它不是在一张静态的技能表上点选,而是把构筑决策藏进了地图的空间结构里。这种设计让重复游玩具有意义,也让关卡设计(README 中由 Maik Helfrich 负责的 leveldesign 与 balancing)承担了相当重的职责——出口的位置、风险与回报的差异,都需要被仔细安排,否则分支就会退化成随机奖励。

在美术与世界观上,项目的气质相当独特。背景设定受古埃及启发,视觉元素带有新艺术运动(Art Nouveau)时代的装饰感,同时又混入了洛夫克拉夫特笔下克苏鲁神话的影响。这几套看起来不太兼容的语汇——埃及、新艺术、克苏鲁——被统一在同一个二维像素/手绘风格的游戏画面中,构成它区别于普通跑射游戏的辨识度。README 中展示的多张截图可以直接看到这种风格取向,全部 2D 美术资源由 Anna Dorokhova 制作。

核心功能

核心特性

操作与输入设计是该项目另一个值得注意的地方。游戏启动后会先进入一个控制设置界面,玩家可以在这里自定义每个游戏动作对应的按键,或者改用已连接的手柄进行游戏。README 给出了三套推荐配置:默认方案用鼠标移动来瞄准、鼠标点击来攻击、A/W/D 三键控制移动,并在设置界面勾选「use default settings」;双摇杆手柄方案下,一个摇杆负责瞄准与攻击,另一个摇杆负责移动,需要在设置界面把摇杆倾斜方向逐个映射到玩家动作上;带十字键(hat)的手柄方案则允许同一个 hat 同时用于移动和瞄准,需要分别勾选「use hat to move」与「use hat to aim」。作者特别提示:手柄必须在启动游戏之前就已连接并通电,否则游戏无法识别;输入重映射有时需要等待约一秒才生效。此外 ESC 退出游戏、ENTER 暂停、BACKSPACE 重置或重新载入游戏。

技术实现上,这是一个建立在 pygame 之上的自研游戏框架,没有使用商业引擎。README 列出的依赖库包括 pygame(窗口、输入、渲染与主循环)、PyTMX(解析 Tiled 的 TMX 瓦片地图)、pyscroll(滚动地图与分层绘制),并内嵌了 FreeSans 字体。从「使用 pyscroll + PyTMX」这一点可以看出,关卡是以 Tiled 瓦片地图的形式编辑与加载的,这对想要用 Python 做二维游戏的开发者来说是一个相当典型的可参考技术栈:地图数据与代码分离,滚动跟随与图层绘制交给现成库处理,代码则集中在玩法逻辑与角色成长上。

获取与运行方面,作者引导玩家前往仓库的 Releases 页面下载 Linux 与 Windows 的可执行版本。这些版本不需要安装:解压 zip 后直接运行可执行文件即可,Linux 用户需要先给文件加上执行权限(chmod +x Chaos-Projectile),然后以 ./Chaos-Projectile 启动;卸载时只要删除对应目录。源码运行方式在 README 中写的是 apt-get install python-pygame python-pip,再 pip install pytmx pyscroll,然后进入 src 目录执行 python game.py;也可以使用 python setup.py build 进行构建。需要留意的是,README 中的这套命令沿用了 Debian 系发行版与 Python 2 时代的包名习惯(python-pygame、python-pip),在当前的 Python 3 环境中未必能原样复现,现代环境更可能需要通过 pip 安装 pygame、pytmx、pyscroll 并自行调整启动入口;作者也说明项目主要在类 Debian 系统上开发,非 Debian 平台需要从其他渠道自行准备 pygame 与 pip。

技术架构分析

技术要点

授权方面,项目做了相当清晰的分割:Anna Dorokhova 编写的代码以 GNU GPLv3 授权,她制作的 2D 游戏美术资源以 CC-BY 4.0 授权,Maik Helfrich 负责的关卡设计与数值平衡同样以 GNU GPLv3 授权。这意味着代码与美术可以分别被再利用,但美术部分需要保留署名。

适合谁来研究这个项目?如果你正在用 Python/pygame 做二维动作游戏,并且关心三件事——如何用 Tiled 地图驱动关卡、如何做一套可自定义键位与手柄映射的输入层、以及如何把「成长分支」嵌入关卡的空间结构而不是菜单——这个仓库提供了完整的实例。需要注意的是它仍在开发中,功能与可玩内容的完整度会随提交变化,特性描述以仓库当时的 README 与发行版为准;同时其依赖版本较老,直接照搬运行命令前最好先确认自己的 Python 与 pygame 版本。

开源许可证与版权说明

许可证标识:未明确。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目