The-Powder-Toy/The-Powder-Toy

GitHub: The-Powder-Toy/The-Powder-Toy

一款基于 C++ 和 SDL 的免费物理沙盒桌面游戏,模拟气压、热量、重力及物质间的复杂交互,供玩家自由创造与探索。

Stars: 5219 | Forks: 876

# The Powder Toy - 2026年6月 从 [Powder Toy 官网](https://powdertoy.co.uk/Download.html)获取最新版本。我们也上架了 [Steam](https://store.steampowered.com/app/1148350/The_Powder_Toy/)。 要使用保存等在线功能,你需要[注册一个账户](https://powdertoy.co.uk/Register.html)。 你也可以访问[官方 TPT 论坛](https://powdertoy.co.uk/Discussions/Categories/Index.html)。 你是否曾想要炸毁某物?或者一直梦想着操作核电站?你有意愿开发自己的 CPU 吗?The Powder Toy 能让你做到所有这些,甚至更多! The Powder Toy 是一款免费的物理沙盒游戏,它模拟了气压和流速、热量、重力以及不同物质之间无数的相互作用!游戏为你提供了各种建筑材料、液体、气体和电子元件,可用于构建复杂的机器、枪支、炸弹、逼真的地形以及几乎任何其他东西。然后你可以挖掘它们并观看酷炫的爆炸,添加错综复杂的接线,与小火柴人一起玩耍或操作你的机器。你可以浏览并游玩社区制作的数以千计的存档,或者上传你自己的存档——我们欢迎你的创作! 这里有一个 Lua API——你可以自动化你的工作,甚至为游戏制作插件。The Powder Toy 是免费的,其源代码在 GNU 通用公共许可证下发布,因此你可以自己修改游戏或协助开发。 # 构建说明 请参阅 Wiki [主页](https://powdertoy.co.uk/Wiki/W/Main_Page.html)上的 _Powder Toy 开发帮助_ 部分。 # 使用的库及其他资源 * [bzip2](http://www.bzip.org/) * [FFTW](http://fftw.org/) * [JsonCpp](https://github.com/open-source-parsers/jsoncpp) * [libcurl](https://curl.se/libcurl/) * [libpng](http://www.libpng.org/pub/png/libpng.html) * [Lua](https://www.lua.org/) * [LuaJIT](https://luajit.org/) * [Mallangche](https://github.com/JammPark/Mallangche) * [mbedtls](https://www.trustedfirmware.org/projects/mbed-tls/) * [SDL](https://libsdl.org/) # 指南 像使用 MS Paint 一样,用鼠标点击元素并在场地中绘制即可。游戏的其余部分就是探索接下来会发生什么。 # 按键控制 | 按键 | 操作 | | ----------------------- | --------------------------------------------------------------- | | TAB | 在圆形/方形/三角形笔刷之间切换 | | 空格键 | 暂停 | | Q / Esc | 退出 | | Z | 缩放 | | S | 保存印章(STK2 发布时与 Ctrl 一起使用) | | L | 加载上次保存的印章 | | K | 印章库 | | 0-9 | 设置视图模式 | | P / F2 | 将截图保存为 .png | | E | 打开元素搜索 | | F | 暂停并步进到下一帧 | | G | 增大网格尺寸 | | Shift + G | 减小网格尺寸 | | H | 显示/隐藏 HUD | | Ctrl + H / F1 | 显示介绍文本 | | D / F3 | 调试模式(STK2 发布时与 Ctrl 一起使用) | | I | 反转压力和速度图 | | W | 循环切换重力模式(STK2 发布时与 Ctrl 一起使用) | | Y | 循环切换空气模式 | | Ctrl + E | 循环切换边缘模式 | | B | 进入装饰编辑器菜单 | | Ctrl + B | 开启/关闭装饰 | | N | 开启/关闭牛顿重力 | | U | 开启/关闭环境热量 | | Ctrl + I | 安装 Powder Toy,用于通过双击加载存档/印章 | | 反引号 (`) | 开启/关闭控制台 | | = | 重置压力和速度图 | | Ctrl + = | 重置电流 | | \[ | 减小笔刷尺寸 | | \] | 增大笔刷尺寸 | | Alt + \[ | 笔刷尺寸减 1 | | Alt + \] | 笔刷尺寸加 1 | | Ctrl + C/V/X | 复制/粘贴/剪切 | | Ctrl + Z | 撤销 | | Ctrl + Y | 重做 | | Ctrl + 光标拖动 | 矩形 | | Shift + 光标拖动 | 直线 | | 鼠标中键点击 | 吸取元素 | | Alt + 鼠标左键点击 | 吸取元素 | | 鼠标滚轮 | 更改笔刷尺寸 | | Ctrl + 鼠标滚轮 | 更改笔刷垂直尺寸 | | Shift + 鼠标滚轮 | 更改笔刷水平尺寸 | | Shift + R | 粘贴印章时水平镜像选中区域 | | Ctrl + Shift + R | 粘贴印章时垂直镜像选中区域 | | R | 粘贴印章时逆时针旋转选中区域 | | F11 | 开启/关闭全屏 | ## 命令行 | 命令 | 描述 | 示例 | | --------------------- | ------------------------------------------------ | ------------------------------------------- | | `scale:SIZE` | 更改窗口缩放比例 | `scale:2` | | `kiosk` | 全屏模式 | | | `proxy:SERVER[:PORT]` | 要使用的代理服务器 | `proxy:wwwcache.lancs.ac.uk:8080` | | `open FILE` | 将文件作为印章或游戏存档打开 | | | `ddir DIRECTORY` | 用于保存印章和首选项的目录 | | | `ptsave:SAVEID` | 打开在线存档,用于 ptsave: URL | `ptsave:2198` | | `disable-network` | 禁用互联网连接 | | | `disable-bluescreen` | 禁用蓝屏处理程序 | | | `redirect` | 将输出重定向到 stdout.txt / stderr.txt | | | `console` | 在 Windows 上将输出重定向到新的控制台 | | | `cafile:CAFILE` | 设置证书包路径 | `cafile:/etc/ssl/certs/ca-certificates.crt` | | `capath:CAPATH` | 设置证书目录路径 | `capath:/etc/ssl/certs` |
标签:C++, Lua, rizin, SDL, 开源, 数据擦除, 沙盒游戏, 物理模拟