<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Puzzle on PlumePHP</title><link>https://plumephp.com/tags/puzzle/</link><description>Recent content in Puzzle on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 17 May 2026 11:36:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/puzzle/index.xml" rel="self" type="application/rss+xml"/><item><title>Phaser 格子解谜规则引擎：撤销、重放和关卡验证要从第一天设计</title><link>https://plumephp.com/phaser-puzzle-grid-rule-engine-2026/</link><pubDate>Sun, 17 May 2026 11:36:00 +0800</pubDate><guid>https://plumephp.com/phaser-puzzle-grid-rule-engine-2026/</guid><description>&lt;h2 id="解谜游戏最怕看起来能动"&gt;解谜游戏最怕“看起来能动”&lt;/h2&gt;
&lt;p&gt;格子解谜用 Phaser 做原型非常快：一个二维数组表示地图，方向键移动角色，撞到箱子就推动，踩到机关就开门。几天后，需求开始变复杂：玩家要撤销，机关要延迟触发，冰面会滑行，箱子有重量，传送门能改变方向，关卡编辑器要验证是否可解，提示系统要回放最短路径。这个时候如果所有规则都写在 &lt;code&gt;Player.update()&lt;/code&gt; 里，项目会迅速失控。解谜游戏的核心不是移动动画，而是一个可预测的规则引擎。&lt;/p&gt;</description></item><item><title>Phaser 三消连锁系统：匹配检测、掉落补位和动画队列要可复现</title><link>https://plumephp.com/phaser-match3-combo-cascade-2026/</link><pubDate>Fri, 03 Apr 2026 14:05:00 +0800</pubDate><guid>https://plumephp.com/phaser-match3-combo-cascade-2026/</guid><description>&lt;h2 id="三消最难的是连锁之后还说得清"&gt;三消最难的是“连锁之后还说得清”&lt;/h2&gt;
&lt;p&gt;三消原型看起来简单：交换两个棋子，找到三连，消除，棋子往下掉，再补新棋子。真正做成游戏后，复杂度会不断增加：四连生成横向炸弹，五连生成彩虹球，T 型生成范围炸弹，连锁有倍率，道具可以打断棋盘，目标任务要统计指定颜色，关卡需要保证初始棋盘无自动消除且至少有一步可走。若所有逻辑都写在 Phaser 动画回调里，连锁一多就会变成不可复现的混乱。&lt;/p&gt;</description></item><item><title>Phaser 铁路调度解谜：轨道岔路、信号灯和碰撞预测</title><link>https://plumephp.com/phaser-train-dispatch-signal-puzzle-2026/</link><pubDate>Fri, 27 Mar 2026 21:44:00 +0800</pubDate><guid>https://plumephp.com/phaser-train-dispatch-signal-puzzle-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;调度解谜游戏里，三列火车从不同入口进入小站。玩家要切换岔路、控制信号灯，让货车进仓库，客车停站，维修车避开主线。火车速度不快，但每一次误判都会造成连锁堵塞。&lt;/p&gt;</description></item><item><title>Phaser 激光反射解谜：射线传播、镜面、阻挡和增量更新要可验证</title><link>https://plumephp.com/phaser-laser-reflection-puzzle-2026/</link><pubDate>Mon, 02 Mar 2026 09:24:00 +0800</pubDate><guid>https://plumephp.com/phaser-laser-reflection-puzzle-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;一个研究所主题的解谜关卡里，玩家旋转镜子，把蓝色激光导向三个接收器；看似只是画几条线，实际上每次旋转都会改变整条光路。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。如果激光路径由 Sprite 动画回调临时计算，镜子旋转、传送门、分色器和阻挡块会很快互相影响，关卡编辑器也无法判断是否可解。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 仓库推箱变体：箱子状态、撤销、机关联动和关卡验证</title><link>https://plumephp.com/phaser-warehouse-sokoban-automation-2026/</link><pubDate>Fri, 13 Feb 2026 11:32:00 +0800</pubDate><guid>https://plumephp.com/phaser-warehouse-sokoban-automation-2026/</guid><description>&lt;h2 id="为什么这个玩法不能只写成演示"&gt;为什么这个玩法不能只写成演示&lt;/h2&gt;
&lt;p&gt;玩家在自动化仓库里推动电池箱，把它们送到充电底座。某些箱子很重，只能推不能拉；某些地板是传送带，会在回合结束后移动箱子；还有压力板控制门。规则不复杂，但组合后很容易失控。&lt;/p&gt;</description></item><item><title>Phaser 找物解谜场景：热点、缩放、误点惩罚和提示系统</title><link>https://plumephp.com/phaser-museum-hidden-object-scene-2026/</link><pubDate>Wed, 04 Feb 2026 20:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-museum-hidden-object-scene-2026/</guid><description>&lt;h2 id="为什么这个玩法不能只写成演示"&gt;为什么这个玩法不能只写成演示&lt;/h2&gt;
&lt;p&gt;玩家在夜间博物馆寻找十件失窃文物线索：展柜角落的裂纹、画框背后的编号、地毯下的钥匙。画面是静态场景，但每个可点击热点、缩放区域和提示都要准确，否则玩家会觉得自己是在和像素作战。&lt;/p&gt;</description></item><item><title>Phaser 剧情物品检查器：旋转查看、线索热点和状态记录</title><link>https://plumephp.com/phaser-story-item-inspector-system-2026/</link><pubDate>Thu, 15 Jan 2026 13:44:00 +0800</pubDate><guid>https://plumephp.com/phaser-story-item-inspector-system-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;玩家捡到一块古旧怀表，可以放大查看、旋转背面、点击划痕、打开表盖，最终发现夹层里的密码纸。这个检查器看似 UI，但它承载剧情线索、谜题状态和玩家记忆。&lt;/p&gt;</description></item></channel></rss>