<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Phaser on PlumePHP</title><link>https://plumephp.com/tags/phaser/</link><description>Recent content in Phaser on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 24 Jun 2026 17:40:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/phaser/index.xml" rel="self" type="application/rss+xml"/><item><title>Phaser 系列维护清单：新增文章如何归类、入专项和拆分组</title><link>https://plumephp.com/phaser-series-maintenance-checklist-2026/</link><pubDate>Wed, 24 Jun 2026 17:40:00 +0800</pubDate><guid>https://plumephp.com/phaser-series-maintenance-checklist-2026/</guid><description>&lt;p&gt;这份清单是给后续维护 Phaser 系列用的，不是读者按主题学习的入口。它解决一个很实际的问题：当文章从 120 篇继续扩到 150、180 篇时，不能每次都靠记忆判断“这篇应该放到哪个总分类、是否要进入专项页、某个专项分组是不是已经太长”。&lt;/p&gt;</description></item><item><title>Phaser 关卡与内容工具专项</title><link>https://plumephp.com/phaser-level-content-tools-series-2026/</link><pubDate>Wed, 24 Jun 2026 17:10:00 +0800</pubDate><guid>https://plumephp.com/phaser-level-content-tools-series-2026/</guid><description>&lt;p&gt;这个专项面向关卡、内容工具和可持续生产线。重点不是某一个关卡怎么写，而是地图、对象层、规则验证、内容热更新、UGC 安全和调试预演如何形成一套能反复出内容的流程。&lt;/p&gt;</description></item><item><title>Phaser 性能与发布专项</title><link>https://plumephp.com/phaser-performance-release-series-2026/</link><pubDate>Wed, 24 Jun 2026 17:10:00 +0800</pubDate><guid>https://plumephp.com/phaser-performance-release-series-2026/</guid><description>&lt;p&gt;这个专项面向“准备上线、已经上线、或者正在做版本迁移”的 Phaser 项目。它不只讨论帧率，也把资源版本、缓存、存档、网络同步、对象池、调试遥测和低端机降级放在同一张发布风险图里。&lt;/p&gt;</description></item><item><title>Phaser 战斗与数值专项</title><link>https://plumephp.com/phaser-combat-numbers-series-2026/</link><pubDate>Wed, 24 Jun 2026 17:10:00 +0800</pubDate><guid>https://plumephp.com/phaser-combat-numbers-series-2026/</guid><description>&lt;p&gt;这个专项面向动作、RPG、塔防、卡牌和策略项目里的战斗系统。阅读重点是把“打起来爽”拆成碰撞、动画、索敌、AI、数值解释、工具沙盒和可调曲线，而不是只叠特效。&lt;/p&gt;</description></item><item><title>Phaser 2026 游戏开发专题导航</title><link>https://plumephp.com/posts/game/client/phaser/2026/</link><pubDate>Wed, 24 Jun 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/posts/game/client/phaser/2026/</guid><description>&lt;p&gt;这页不是按发布时间堆列表，而是把 2026 年 1-6 月已经完成的 120 篇 Phaser 游戏开发文章按系统类型重新整理。读者如果正在做一个具体功能，比如移动端手势、关卡热更新、战斗伤害公式、经营经济循环、像素字体排版、联机同步或低端机降级，可以直接从对应专题进入，不必在时间线里逐篇翻。&lt;/p&gt;</description></item><item><title>Phaser 3 到 Phaser 4 迁移实战：别把升级当成一次大爆破</title><link>https://plumephp.com/phaser-3-to-4-migration-practical-guide-2026/</link><pubDate>Sun, 21 Jun 2026 08:40:00 +0800</pubDate><guid>https://plumephp.com/phaser-3-to-4-migration-practical-guide-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;Phaser 4 发布以后，团队群里最常见的问题是：我们要不要马上升级？这个问题不能只看新版本是否更先进。一个已经上线、有活动排期、有渠道 SDK、有一堆自定义插件的 Phaser 3 项目，升级不是换 npm 版本，而是一次风险管理。&lt;/p&gt;</description></item><item><title>Phaser 调试工具、输入回放与遥测：线上问题不能只靠录屏猜</title><link>https://plumephp.com/phaser-debug-tools-replay-telemetry-2026/</link><pubDate>Sat, 20 Jun 2026 17:26:00 +0800</pubDate><guid>https://plumephp.com/phaser-debug-tools-replay-telemetry-2026/</guid><description>&lt;h2 id="录屏只能证明现象"&gt;录屏只能证明现象&lt;/h2&gt;
&lt;p&gt;Phaser 小游戏上线后，最常见的反馈是几段录屏：角色突然卡住、按钮点了没反应、Boss 血条不掉、第二局开始没有声音。录屏很有价值，但它只能证明现象，不能告诉你内部状态。工程如果只能靠录屏猜，就会把大量时间花在复现上。&lt;/p&gt;</description></item><item><title>Phaser UGC 关卡编辑器：保存、校验、分享码和安全边界</title><link>https://plumephp.com/phaser-ugc-level-editor-safety-2026/</link><pubDate>Fri, 19 Jun 2026 15:56:00 +0800</pubDate><guid>https://plumephp.com/phaser-ugc-level-editor-safety-2026/</guid><description>&lt;h2 id="ugc-编辑器不是把开发工具开放给玩家"&gt;UGC 编辑器不是把开发工具开放给玩家&lt;/h2&gt;
&lt;p&gt;让玩家自定义关卡很有吸引力。Phaser 做 2D 编辑器也不难：格子地图、素材面板、拖拽放置、保存分享。但 UGC 一旦上线，就不只是工具问题，还涉及可玩性、作弊、内容安全、兼容、分享和审核。把内部关卡编辑能力直接开放给玩家，通常会出事。&lt;/p&gt;</description></item><item><title>Phaser PWA、离线缓存与 CDN 发布：资源版本一致性比缓存命中更重要</title><link>https://plumephp.com/phaser-pwa-offline-cdn-release-2026/</link><pubDate>Thu, 18 Jun 2026 08:58:00 +0800</pubDate><guid>https://plumephp.com/phaser-pwa-offline-cdn-release-2026/</guid><description>&lt;h2 id="缓存命中不是唯一目标"&gt;缓存命中不是唯一目标&lt;/h2&gt;
&lt;p&gt;H5 游戏最怕首次加载慢，于是团队自然会想到 PWA、Service Worker 和 CDN 缓存。缓存确实能提升体验，但缓存策略一旦设计不好，会带来更难排查的问题：代码是新版本，资源是旧版本；地图 JSON 已更新，tileset 还没更新；玩家离线进入旧包，联网后存档字段不兼容。&lt;/p&gt;</description></item><item><title>Phaser 可访问性与 CJK 本地化：中文排版、字号和辅助输入</title><link>https://plumephp.com/phaser-accessibility-localization-cjk-2026/</link><pubDate>Wed, 17 Jun 2026 11:25:00 +0800</pubDate><guid>https://plumephp.com/phaser-accessibility-localization-cjk-2026/</guid><description>&lt;h2 id="可访问性不是最后加一个选项"&gt;可访问性不是最后加一个选项&lt;/h2&gt;
&lt;p&gt;很多 Phaser 小游戏把可访问性和本地化当成上线前检查项：中文能显示，按钮能点，英文不溢出就算完成。实际玩家设备、视力、语言、输入习惯差异很大。字号太小、红绿区分、按钮热区不足、中文断行奇怪、音效没有字幕，这些都会让一部分玩家直接流失。&lt;/p&gt;</description></item><item><title>Phaser + TypeScript 项目结构：Scene 之外也要有业务边界</title><link>https://plumephp.com/phaser-typescript-project-structure-2026/</link><pubDate>Wed, 17 Jun 2026 09:55:00 +0800</pubDate><guid>https://plumephp.com/phaser-typescript-project-structure-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;很多 Phaser 项目起步只有一个 main.ts 和几个 Scene，迭代两周以后，背包逻辑在 HudScene，怪物配置在 GameScene，广告回调直接改金币，测试入口靠手动点。代码不是不能跑，而是每次加功能都像在抽积木。小游戏也需要业务边界。&lt;/p&gt;</description></item><item><title>Phaser WebGL Pipeline 与后处理：受击闪白、描边和性能边界</title><link>https://plumephp.com/phaser-webgl-pipeline-postfx-2026/</link><pubDate>Tue, 16 Jun 2026 15:34:00 +0800</pubDate><guid>https://plumephp.com/phaser-webgl-pipeline-postfx-2026/</guid><description>&lt;h2 id="特效问题经常从一个闪白开始"&gt;特效问题经常从一个闪白开始&lt;/h2&gt;
&lt;p&gt;角色受击闪白、可交互物描边、Boss 登场屏幕扭曲、低血量红边、冰冻变蓝，这些效果看起来只是美术表现，落到 Phaser WebGL 项目里却会影响渲染路径、批处理、纹理采样和低端设备性能。最常见的起点是“能不能让怪物受击时闪一下白”。&lt;/p&gt;</description></item><item><title>Phaser 商店、抽卡与奖励流：本地动画要服从权威结果</title><link>https://plumephp.com/phaser-shop-gacha-reward-flow-2026/</link><pubDate>Mon, 15 Jun 2026 20:04:00 +0800</pubDate><guid>https://plumephp.com/phaser-shop-gacha-reward-flow-2026/</guid><description>&lt;h2 id="抽卡动画不能决定结果"&gt;抽卡动画不能决定结果&lt;/h2&gt;
&lt;p&gt;商店和抽卡是很多 H5 游戏的商业核心。Phaser 做奖励展示很容易：按钮、转场、卡面翻开、光效、稀有度音效。但越是表现华丽，越要记住边界：本地动画不能决定奖励结果。奖励结果必须来自权威逻辑，本地只负责把结果清楚、稳定、可恢复地展示出来。&lt;/p&gt;</description></item><item><title>Phaser 性能预算：60 帧不是口号，是每一帧怎么花钱</title><link>https://plumephp.com/phaser-performance-frame-budget-2026/</link><pubDate>Mon, 15 Jun 2026 16:08:00 +0800</pubDate><guid>https://plumephp.com/phaser-performance-frame-budget-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;测试机上 60 帧，线上用户反馈卡。这个场景太常见了：开发机 Chrome 很顺，低端安卓 WebView 里一开技能雨就掉到 25 帧。性能问题不是上线前压一遍 profiler 就能解决，它需要从玩法设计阶段就有预算。&lt;/p&gt;</description></item><item><title>Phaser 插件化架构：可复用系统不要靠复制 Scene 代码</title><link>https://plumephp.com/phaser-plugin-architecture-reusable-systems-2026/</link><pubDate>Sun, 14 Jun 2026 11:52:00 +0800</pubDate><guid>https://plumephp.com/phaser-plugin-architecture-reusable-systems-2026/</guid><description>&lt;h2 id="复制-scene-是最快的技术债"&gt;复制 Scene 是最快的技术债&lt;/h2&gt;
&lt;p&gt;活动小游戏团队经常同时维护多个 Phaser 项目。第一个项目写了 Loading、音频、弹窗、埋点、广告奖励和调试面板。第二个项目为了赶时间，直接复制一份。第三个项目又从第二个复制，顺手改了几个字段。半年后，三个项目都有类似系统，但 Bug 修复要改三遍，接口还不完全一样。&lt;/p&gt;</description></item><item><title>Phaser 游戏存档设计：localStorage 能救急，不能背整套经济系统</title><link>https://plumephp.com/phaser-save-data-indexeddb-localstorage-2026/</link><pubDate>Sat, 13 Jun 2026 13:44:00 +0800</pubDate><guid>https://plumephp.com/phaser-save-data-indexeddb-localstorage-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;一次活动版本后，客服收到不少反馈：玩家明明昨天解锁了皮肤，今天打开又没了。排查发现，部分玩家使用隐私浏览器，部分玩家清理了站点数据，还有一部分是新版本改了存档字段，旧数据读取失败后被默认值覆盖。localStorage 没有错，错的是团队把它当成了数据库。&lt;/p&gt;</description></item><item><title>Phaser 小地图与战争迷雾：探索状态要比画一个缩略图更可靠</title><link>https://plumephp.com/phaser-minimap-fog-of-war-2026/</link><pubDate>Sat, 13 Jun 2026 09:33:00 +0800</pubDate><guid>https://plumephp.com/phaser-minimap-fog-of-war-2026/</guid><description>&lt;h2 id="小地图不是把场景缩小"&gt;小地图不是把场景缩小&lt;/h2&gt;
&lt;p&gt;很多 Phaser 项目第一次做小地图，会想到把整个地图截图缩小放到角落。这样能快速看到布局，但很快会遇到问题：未探索区域不该显示，动态敌人要更新，宝箱开过要变状态，地图太大时截图成本高，移动端小地图还会挡住操作。真正可上线的小地图不是缩略图，而是地图状态的可视化。&lt;/p&gt;</description></item><item><title>Phaser 剧情对话与演出系统：跳过、恢复和时间线都要先设计</title><link>https://plumephp.com/phaser-dialogue-cutscene-system-2026/</link><pubDate>Fri, 12 Jun 2026 19:08:00 +0800</pubDate><guid>https://plumephp.com/phaser-dialogue-cutscene-system-2026/</guid><description>&lt;h2 id="剧情系统不是把文字打出来"&gt;剧情系统不是把文字打出来&lt;/h2&gt;
&lt;p&gt;很多 Phaser 小游戏最初只需要一句提示：“公主被困住了，去救她。”于是工程写一个半透明框、一个 Text、一个点击下一句。后来项目加了角色立绘、打字机效果、镜头移动、角色入场、屏幕震动、选项分支、跳过按钮和断线恢复，原来的对话框就开始撑不住了。&lt;/p&gt;</description></item><item><title>Phaser 移动端输入与音频策略：点击开始不是多余按钮</title><link>https://plumephp.com/phaser-mobile-input-audio-policy-2026/</link><pubDate>Thu, 11 Jun 2026 18:31:00 +0800</pubDate><guid>https://plumephp.com/phaser-mobile-input-audio-policy-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;桌面浏览器里一切正常，发到手机上以后问题变得离散：背景音乐不播，第一次点击没有效果，滑动页面时游戏跟着滚，切到微信聊天再回来角色一直往右走。很多人把这些归为“移动端兼容性差”，但项目需要的是明确的输入和音频策略。&lt;/p&gt;</description></item><item><title>Phaser 角色换装与 Avatar 分层：皮肤预览不能只换一张图</title><link>https://plumephp.com/phaser-skin-avatar-customization-2026/</link><pubDate>Thu, 11 Jun 2026 16:28:00 +0800</pubDate><guid>https://plumephp.com/phaser-skin-avatar-customization-2026/</guid><description>&lt;h2 id="换装系统很快会超过换图"&gt;换装系统很快会超过“换图”&lt;/h2&gt;
&lt;p&gt;小游戏早期的皮肤系统通常很简单：玩家选择红色角色，就把 &lt;code&gt;hero_blue&lt;/code&gt; 换成 &lt;code&gt;hero_red&lt;/code&gt;。如果每个皮肤都只有一整套图，这样能跑。但只要加入帽子、武器、翅膀、表情、染色、稀有特效和商店预览，单张图方案就会失控。每个组合都导出一套图，资源数量会爆炸；动画稍微改一帧，所有皮肤都要重导。&lt;/p&gt;</description></item><item><title>Phaser 联机小游戏状态同步：插值、预测和回滚边界</title><link>https://plumephp.com/phaser-networked-game-state-sync-2026/</link><pubDate>Wed, 10 Jun 2026 12:36:00 +0800</pubDate><guid>https://plumephp.com/phaser-networked-game-state-sync-2026/</guid><description>&lt;h2 id="联机不是把位置广播出去"&gt;联机不是把位置广播出去&lt;/h2&gt;
&lt;p&gt;Phaser 很适合做轻量联机小游戏，WebSocket 一接，玩家位置一发，其他人一收，看起来就能跑。但真实上线后会马上遇到问题：远端玩家抖动，本地玩家被服务器拉回，攻击看起来命中却没伤害，弱网玩家像瞬移，结算结果和画面不一致。联机难点不在 Phaser，而在状态权威和表现延迟之间的取舍。&lt;/p&gt;</description></item><item><title>Phaser 程序化地牢生成：随机种子、房间连接和可玩性校验</title><link>https://plumephp.com/phaser-procedural-dungeon-generation-2026/</link><pubDate>Tue, 09 Jun 2026 21:17:00 +0800</pubDate><guid>https://plumephp.com/phaser-procedural-dungeon-generation-2026/</guid><description>&lt;h2 id="随机地牢最怕随机到不能玩"&gt;随机地牢最怕随机到不能玩&lt;/h2&gt;
&lt;p&gt;程序化地牢听起来很适合 Phaser 小游戏：每局地图不同，内容复用率高，玩家也有新鲜感。但随机生成不是把房间随便摆一摆。真正上线后，玩家会遇到门被墙挡住、出生点离出口太近、关键钥匙刷在不可达区域、Boss 房前没有补给、怪物密度忽高忽低。随机的结果必须可玩、可解释、可复现。&lt;/p&gt;</description></item><item><title>Phaser Camera、World 和 UI：镜头系统不要顺手改玩法世界</title><link>https://plumephp.com/phaser-camera-world-ui-design-2026/</link><pubDate>Tue, 09 Jun 2026 10:22:00 +0800</pubDate><guid>https://plumephp.com/phaser-camera-world-ui-design-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;横版关卡上线前最后一天，策划要求把 Boss 出场时镜头拉近一点。改动看似很小，却引发了两个问题：技能按钮在部分手机上偏移，弹幕碰撞看起来也不准。真正的问题不是镜头缩放，而是项目没有区分世界坐标、屏幕坐标和 UI 坐标。&lt;/p&gt;</description></item><item><title>Phaser 弹幕对象池：高密度子弹不是简单多 new 几个 Sprite</title><link>https://plumephp.com/phaser-object-pool-bullet-hell-2026/</link><pubDate>Mon, 08 Jun 2026 20:16:00 +0800</pubDate><guid>https://plumephp.com/phaser-object-pool-bullet-hell-2026/</guid><description>&lt;h2 id="弹幕系统的敌人是峰值"&gt;弹幕系统的敌人是峰值&lt;/h2&gt;
&lt;p&gt;弹幕游戏最容易在演示时显得很酷，也最容易在上线后暴露性能问题。开发机上 300 发子弹很顺，低端手机上 Boss 一开全屏技能就卡。更隐蔽的是平均帧率不低，但每隔几秒会因为 GC 或碰撞峰值卡一下。玩家躲弹幕时，任何一次卡顿都可能变成误伤。&lt;/p&gt;</description></item><item><title>Phaser 精灵动画状态机：别让角色在 idle、run 和 attack 之间打架</title><link>https://plumephp.com/phaser-animation-state-machine-2026/</link><pubDate>Sun, 07 Jun 2026 20:05:00 +0800</pubDate><guid>https://plumephp.com/phaser-animation-state-machine-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;角色站立、奔跑、攻击三套动画都做完以后，最容易出现的不是缺资源，而是动画互相抢控制权。玩家按住方向键攻击，run 每帧都想播放；attack 刚播出一半，受击又插进来；动画结束回到 idle 时，角色明明还在移动。看起来像美术问题，实际是状态机没有说清谁拥有角色。&lt;/p&gt;</description></item><item><title>Phaser 任务系统与追踪 UI：进度监听不要写进每个按钮</title><link>https://plumephp.com/phaser-quest-task-tracker-2026/</link><pubDate>Sun, 07 Jun 2026 13:39:00 +0800</pubDate><guid>https://plumephp.com/phaser-quest-task-tracker-2026/</guid><description>&lt;h2 id="任务系统最怕到处监听"&gt;任务系统最怕到处监听&lt;/h2&gt;
&lt;p&gt;任务系统开始通常很简单：击败 5 个怪，收集 3 个宝箱，通关第 2 关。工程在怪物死亡处加一句任务进度，在宝箱打开处加一句任务进度，在通关结算处加一句任务进度。几周后，日常任务、成就、活动任务、新手引导、战令任务都想监听同一批事件，代码里到处都是 &lt;code&gt;quest.addProgress&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>Phaser 敌人 AI 设计：巡逻、追击和行为树不要写成一堆 if</title><link>https://plumephp.com/phaser-enemy-ai-behavior-tree-2026/</link><pubDate>Sat, 06 Jun 2026 09:24:00 +0800</pubDate><guid>https://plumephp.com/phaser-enemy-ai-behavior-tree-2026/</guid><description>&lt;h2 id="ai-最怕看起来聪明实际不可控"&gt;AI 最怕看起来聪明，实际不可控&lt;/h2&gt;
&lt;p&gt;敌人 AI 很容易从简单 if 开始：距离玩家小于 300 就追，大于 300 就巡逻，血量低于 30% 就逃跑。第一只怪可以这样写，第二只也能复制，等到第十种怪加入远程攻击、召唤、霸体、警戒、回巢和技能冷却时，代码就会变成一团条件判断。每次调一个怪，都可能影响另一种怪。&lt;/p&gt;</description></item><item><title>用 Phaser Arcade Physics 做战斗手感：碰撞盒比特效更诚实</title><link>https://plumephp.com/phaser-arcade-physics-combat-feel-2026/</link><pubDate>Fri, 05 Jun 2026 11:48:00 +0800</pubDate><guid>https://plumephp.com/phaser-arcade-physics-combat-feel-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-inventory-equipment-system-2026/</link><pubDate>Fri, 05 Jun 2026 10:46:00 +0800</pubDate><guid>https://plumephp.com/phaser-inventory-equipment-system-2026/</guid><description>&lt;h2 id="背包不是一组图标"&gt;背包不是一组图标&lt;/h2&gt;
&lt;p&gt;很多 Phaser 项目第一次做背包时，会把每个物品画成一个 Icon，加上数量文本，拖到另一个格子就交换。原型阶段没问题，但只要加入堆叠、装备槽、锁定、排序、出售、强化、掉落、存档和服务端同步，背包就会变成状态一致性的核心系统。&lt;/p&gt;</description></item><item><title>Phaser Matter Physics 平台动作实践：斜坡、传感器和角色控制</title><link>https://plumephp.com/phaser-matter-physics-platformer-2026/</link><pubDate>Thu, 04 Jun 2026 16:42:00 +0800</pubDate><guid>https://plumephp.com/phaser-matter-physics-platformer-2026/</guid><description>&lt;h2 id="选择-matter-之前先确认问题"&gt;选择 Matter 之前先确认问题&lt;/h2&gt;
&lt;p&gt;Phaser 同时提供 Arcade Physics 和 Matter Physics。很多团队看到 Matter 支持更复杂的刚体、斜坡和多边形，就想直接上 Matter。问题是 Matter 更灵活，也更容易把角色控制做得难以预测。平台动作游戏最重要的不是物理真实，而是玩家按下按钮后得到稳定、可学习的反馈。&lt;/p&gt;</description></item><item><title>Phaser 卡牌战斗拖拽系统：出牌不是把 Sprite 拖到敌人身上</title><link>https://plumephp.com/phaser-card-battle-drag-drop-2026/</link><pubDate>Wed, 03 Jun 2026 18:11:00 +0800</pubDate><guid>https://plumephp.com/phaser-card-battle-drag-drop-2026/</guid><description>&lt;h2 id="卡牌拖拽的难点在出牌判定"&gt;卡牌拖拽的难点在出牌判定&lt;/h2&gt;
&lt;p&gt;Phaser 做卡牌战斗很直观：卡牌是 Sprite 或 Container，手牌区是一排对象，拖到敌人身上释放，就触发技能。原型阶段这样写很快，但上线项目很快会遇到更多规则：费用不够不能出，沉默状态不能出，某些牌必须选友方，某些牌不需要目标，拖到空地要取消，动画播放期间不能连点，服务端否定后要回滚。&lt;/p&gt;</description></item><item><title>Phaser 资源加载与缓存策略：首屏快，不代表后面可以乱</title><link>https://plumephp.com/phaser-asset-loading-cache-strategy-2026/</link><pubDate>Wed, 03 Jun 2026 15:12:00 +0800</pubDate><guid>https://plumephp.com/phaser-asset-loading-cache-strategy-2026/</guid><description>&lt;h2 id="从一个真实问题开始"&gt;从一个真实问题开始&lt;/h2&gt;
&lt;p&gt;有一次线上活动页的留存数据非常奇怪：玩家打开速度不慢，首屏 2 秒内出现，但第三关开始流失突然升高。测试回放以后才发现，第三关第一次出现新怪物时会卡一下，随后播放的技能音效还慢半拍。首屏指标很好看，真实体验却在中段崩掉。&lt;/p&gt;</description></item><item><title>Phaser Tilemap 与 Tiled 关卡流水线：地图不是一张背景图</title><link>https://plumephp.com/phaser-tilemap-tiled-level-pipeline-2026/</link><pubDate>Tue, 02 Jun 2026 10:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-tilemap-tiled-level-pipeline-2026/</guid><description>&lt;h2 id="地图问题通常不是美术问题"&gt;地图问题通常不是美术问题&lt;/h2&gt;
&lt;p&gt;很多 Phaser 项目第一次做关卡时，会把地图当成一张大背景图。美术给一张完整 PNG，工程把它放进场景，再手写几个碰撞矩形和出生点。第一关这样做很快，第三关还能忍，第十关开始就会出问题：玩家能穿过某些墙，怪物刷在障碍物里，隐藏宝箱位置和视觉对不上，策划想改一个平台高度却要重新导整张图。&lt;/p&gt;</description></item><item><title>Phaser 等距战棋网格：坐标、寻路和可读性比透视更重要</title><link>https://plumephp.com/phaser-isometric-grid-tactics-2026/</link><pubDate>Mon, 01 Jun 2026 14:22:00 +0800</pubDate><guid>https://plumephp.com/phaser-isometric-grid-tactics-2026/</guid><description>&lt;h2 id="等距地图的问题通常不是数学而是边界"&gt;等距地图的问题通常不是数学，而是边界&lt;/h2&gt;
&lt;p&gt;等距视角很适合小型策略游戏：画面有空间感，角色站位清楚，关卡看起来比普通俯视图更精致。但 Phaser 项目第一次做等距网格时，最容易踩的坑不是公式不会写，而是坐标边界不清。屏幕坐标、世界坐标、格子坐标、排序深度、寻路成本、点击命中范围，如果全部混在 Scene 里，后续每一次加障碍、技能范围和高亮都会变得很痛。&lt;/p&gt;</description></item><item><title>Phaser Scene 生命周期架构：不要把所有逻辑塞进一个场景</title><link>https://plumephp.com/phaser-scene-lifecycle-architecture-2026/</link><pubDate>Mon, 01 Jun 2026 09:36:00 +0800</pubDate><guid>https://plumephp.com/phaser-scene-lifecycle-architecture-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-ads-rewarded-video-flow-2026/</link><pubDate>Fri, 29 May 2026 21:33:00 +0800</pubDate><guid>https://plumephp.com/phaser-ads-rewarded-video-flow-2026/</guid><description>&lt;h2 id="激励广告最怕看了但没给"&gt;激励广告最怕“看了但没给”&lt;/h2&gt;
&lt;p&gt;Phaser 小游戏接入激励视频广告，看似只是点按钮、调 SDK、播放完成后发奖励。真正上线后，问题会集中爆发：广告加载失败，按钮还亮着；玩家看完视频，SDK 回调丢了；网络断开，奖励状态不明；用户连续点击触发两个广告；复活场景里游戏还在跑，玩家看完回来已经死了；有人伪造回调刷奖励。激励广告是商业化功能，但它首先是一个状态机。如果状态机不闭环，收入和口碑都会受影响。&lt;/p&gt;</description></item><item><title>Phaser 竞速影子回放：输入采样、确定性和回放压缩决定可信度</title><link>https://plumephp.com/phaser-replay-ghost-racing-2026/</link><pubDate>Tue, 26 May 2026 16:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-replay-ghost-racing-2026/</guid><description>&lt;h2 id="影子回放不是录屏"&gt;影子回放不是录屏&lt;/h2&gt;
&lt;p&gt;竞速、跑酷计时、滑雪、飞行穿环这类 Phaser 游戏很适合加入影子回放。玩家看到自己的最佳路线或好友路线，会更容易进入“再快一点”的循环。很多人第一反应是录制每一帧角色位置，然后回放时照着画。这个方案能很快工作，但数据量大、难压缩、难验证，而且一旦物理或地图版本变化，回放就可能穿墙。更好的思路是把回放当作一段可重放的输入或状态轨迹，而不是视频。&lt;/p&gt;</description></item><item><title>Phaser 活动日历与运营配置：客户端展示、时区和灰度开关要讲清楚</title><link>https://plumephp.com/phaser-liveops-event-calendar-2026/</link><pubDate>Sat, 23 May 2026 08:51:00 +0800</pubDate><guid>https://plumephp.com/phaser-liveops-event-calendar-2026/</guid><description>&lt;h2 id="活动系统不是首页多放几个按钮"&gt;活动系统不是首页多放几个按钮&lt;/h2&gt;
&lt;p&gt;当 Phaser 小游戏从一次性内容走向长期运营，活动系统很快会成为客户端最容易混乱的部分。今天有七日签到，明天有周末双倍，后天有 Boss 挑战，节日还有皮肤兑换。运营希望随时开关，策划希望复用模板，美术希望换入口图，客户端希望别每次发版。最糟糕的实现是把活动入口写死在 Scene 里，用本地时间判断开始结束，再让每个活动自己拉一份配置。这样迟早会出现活动提前消失、时区错一天、入口显示但奖励领不了、灰度用户看到错误活动等问题。&lt;/p&gt;</description></item><item><title>Phaser Boss 战阶段设计：招式表、转阶段和压迫感控制不能只靠血量</title><link>https://plumephp.com/phaser-boss-fight-phase-design-2026/</link><pubDate>Wed, 20 May 2026 19:24:00 +0800</pubDate><guid>https://plumephp.com/phaser-boss-fight-phase-design-2026/</guid><description>&lt;h2 id="好-boss-不是血厚的小怪"&gt;好 Boss 不是血厚的小怪&lt;/h2&gt;
&lt;p&gt;很多 Phaser 动作游戏的 Boss 初版只是一个血量更多、碰撞更大的敌人。它会追玩家、发子弹、血量低了发得更快。这样的 Boss 很快会暴露问题：招式没有预警，玩家不知道为什么受伤；阶段切换突然打断动画，看起来像 bug；弹幕密度随着血量线性增加，低端手机开始掉帧；玩家死了以后只觉得被数值压死，而不是想再挑战一次。Boss 战要有记忆点，核心是阶段、招式和反馈，而不是血条长度。&lt;/p&gt;</description></item><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-dialogue-branching-narrative-2026/</link><pubDate>Thu, 14 May 2026 13:09:00 +0800</pubDate><guid>https://plumephp.com/phaser-dialogue-branching-narrative-2026/</guid><description>&lt;h2 id="分支对话不是把文本一行行播完"&gt;分支对话不是把文本一行行播完&lt;/h2&gt;
&lt;p&gt;Phaser 做剧情对话很容易起步：屏幕底部放一个对话框，点击显示下一句，遇到选项就显示几个按钮。问题在于分支叙事的复杂度不是来自文本播放，而是来自状态。玩家之前是否救过某个 NPC，背包里有没有钥匙，当前是否在雨天，阵营好感度是否超过 30，某个秘密是否已经被揭露，这些都会影响可见选项和后续剧情。如果系统一开始只是一个数组下标，后期就会到处出现 &lt;code&gt;if (flagA &amp;amp;&amp;amp; !flagB)&lt;/code&gt;，写的人不敢改，写剧情的人不敢配。&lt;/p&gt;</description></item><item><title>Phaser Roguelike Buff 系统：叠加规则、触发顺序和可解释性比特效更重要</title><link>https://plumephp.com/phaser-roguelike-buff-stacking-2026/</link><pubDate>Mon, 11 May 2026 20:06:00 +0800</pubDate><guid>https://plumephp.com/phaser-roguelike-buff-stacking-2026/</guid><description>&lt;h2 id="buff-系统失控通常不是从大需求开始的"&gt;Buff 系统失控通常不是从大需求开始的&lt;/h2&gt;
&lt;p&gt;Roguelike 项目里，Buff 往往从几个简单效果开始：攻击力加 10%，移动速度加 20%，击杀后回血。过一周，策划想要“暴击后召唤闪电”“每第三次攻击附带毒”“护盾存在时子弹变大”“低血量时所有火焰伤害翻倍”。如果最初只是给角色对象塞几个布尔值，很快就会出现无法解释的结果：同样两个道具，拾取顺序不同伤害不同；UI 显示加成 50%，实际计算是 43%；一个 Buff 到期后把另一个 Buff 的数值也清掉。玩家喜欢复杂组合，但前提是系统行为稳定、可解释、可复现。&lt;/p&gt;</description></item><item><title>Phaser 农场模拟系统：昼夜循环、作物生长和离线收益要先定规则</title><link>https://plumephp.com/phaser-farming-sim-day-night-cycle-2026/</link><pubDate>Fri, 08 May 2026 09:27:00 +0800</pubDate><guid>https://plumephp.com/phaser-farming-sim-day-night-cycle-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-runner-level-pacing-2026/</link><pubDate>Tue, 05 May 2026 15:42:00 +0800</pubDate><guid>https://plumephp.com/phaser-runner-level-pacing-2026/</guid><description>&lt;h2 id="跑酷不是无限往右移动"&gt;跑酷不是无限往右移动&lt;/h2&gt;
&lt;p&gt;横版跑酷看起来是最容易用 Phaser 做的类型：玩家固定在屏幕左侧，地面向左滚动，障碍从右边生成，按一下跳跃。真正难的是节奏。前 30 秒太简单，玩家觉得无聊；第 45 秒突然塞三个坑，玩家觉得被设计师偷袭；速度越来越快但镜头没有提前量，玩家来不及反应；失败后只弹一个重新开始，没人知道自己是跳早、跳晚还是被碰撞盒冤枉。跑酷关卡的质量，不是靠障碍数量堆出来的，而是由“信息出现、玩家决策、动作执行、反馈复盘”这条链路决定。&lt;/p&gt;</description></item><item><title>Phaser 音游判定系统：节拍、延迟校准和判定窗口不能靠感觉</title><link>https://plumephp.com/phaser-rhythm-game-timing-window-2026/</link><pubDate>Sat, 02 May 2026 10:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-rhythm-game-timing-window-2026/</guid><description>&lt;h2 id="为什么音游最怕看起来差不多"&gt;为什么音游最怕“看起来差不多”&lt;/h2&gt;
&lt;p&gt;很多团队第一次用 Phaser 做音游，会把音符下落写成一个普通动画：每帧根据 &lt;code&gt;delta&lt;/code&gt; 改变 &lt;code&gt;y&lt;/code&gt;，音符碰到判定线时玩家点击就算命中。这个方案在演示机上看起来能跑，但只要换一台手机、切到后台再回来、蓝牙耳机多了几十毫秒延迟，判定立刻变得飘。玩家不会说“你的 &lt;code&gt;delta&lt;/code&gt; 积累误差了”，他只会说“这游戏打起来不跟手”。音游系统的核心不是 Sprite 下落，而是让所有画面、输入、音乐和判定都围绕同一个可信时间轴工作。&lt;/p&gt;</description></item><item><title>Phaser 软货币经济设计：产出、消耗、价格曲线和客户端展示边界</title><link>https://plumephp.com/phaser-economy-soft-currency-sinks-2026/</link><pubDate>Tue, 28 Apr 2026 10:44:00 +0800</pubDate><guid>https://plumephp.com/phaser-economy-soft-currency-sinks-2026/</guid><description>&lt;h2 id="软货币不是数字越大越有成长感"&gt;软货币不是数字越大越有成长感&lt;/h2&gt;
&lt;p&gt;金币、木材、经验、能量、碎片，这些软货币是很多 Phaser 游戏的长期循环核心。玩家打怪获得金币，用金币升级；完成任务获得材料，用材料合成；离线获得收益，用收益扩建。若产出和消耗没有规划，经济很快会失衡：前期缺到卡死，中期刚好，后期金币多到没有意义；活动奖励一发，主线价格全崩；客户端展示写着需要 1000 金币，实际扣了 1200；玩家断网重试导致重复扣费。经济系统看似数值设计，客户端也承担很大责任。&lt;/p&gt;</description></item><item><title>Phaser 拍照分享模式：截图、隐藏 HUD 和跨端保存限制要提前处理</title><link>https://plumephp.com/phaser-screenshot-share-photo-mode-2026/</link><pubDate>Mon, 27 Apr 2026 20:22:00 +0800</pubDate><guid>https://plumephp.com/phaser-screenshot-share-photo-mode-2026/</guid><description>&lt;h2 id="拍照模式不是截一下-canvas"&gt;拍照模式不是截一下 Canvas&lt;/h2&gt;
&lt;p&gt;很多 Phaser 游戏想做分享功能时，会直接调用 Canvas 的 &lt;code&gt;toDataURL()&lt;/code&gt;，把当前画面保存成图片。原型能跑，但上线会遇到一堆问题：HUD 挡住角色，截图时正好在伤害闪烁，跨域图片污染 Canvas，移动端保存失败，水印尺寸不对，玩家昵称或聊天内容被截进图里。拍照分享是内容传播功能，也涉及隐私和平台限制，不能只看技术上能不能导出图片。&lt;/p&gt;</description></item><item><title>Phaser 游戏内邮件与通知：附件领取、过期和红点幂等要做扎实</title><link>https://plumephp.com/phaser-in-game-mailbox-notification-2026/</link><pubDate>Fri, 24 Apr 2026 08:58:00 +0800</pubDate><guid>https://plumephp.com/phaser-in-game-mailbox-notification-2026/</guid><description>&lt;h2 id="邮箱是经济系统不只是消息列表"&gt;邮箱是经济系统，不只是消息列表&lt;/h2&gt;
&lt;p&gt;游戏内邮箱看起来像 UI 功能：显示标题、正文、附件，玩家点领取。实际它经常承载补偿、活动奖励、排行榜结算、客服发奖、系统公告和回流礼包。只要有附件，邮箱就是经济系统的一部分。最糟糕的实现是客户端本地生成邮件，点击领取就往背包加物品，没有幂等、没有过期、没有领取记录。这样很容易出现重复领取、邮件消失、红点不准、补偿无法追踪。&lt;/p&gt;</description></item><item><title>Phaser NPC 日程系统：时间表、路径、交互窗口和状态持久化要统一</title><link>https://plumephp.com/phaser-npc-schedule-sandbox-2026/</link><pubDate>Thu, 23 Apr 2026 15:28:00 +0800</pubDate><guid>https://plumephp.com/phaser-npc-schedule-sandbox-2026/</guid><description>&lt;h2 id="npc-会按时出现世界才像在运转"&gt;NPC 会按时出现，世界才像在运转&lt;/h2&gt;
&lt;p&gt;RPG、农场、生活模拟和沙盒游戏里，NPC 如果永远站在同一个位置，会显得像功能按钮。给 NPC 加日程后，世界立刻活起来：早上在家，上午去店里，下午去广场，雨天留在室内，节日去会场，剧情后改变路线。但日程系统也容易变成一堆特例。某个 NPC 被剧情带走，另一个 NPC 卡在门口，玩家约好的任务目标不在，商店营业时间和 NPC 位置不一致。日程不是装饰，它会影响任务、商店、对话和存档。&lt;/p&gt;</description></item><item><title>Phaser 伤害公式与平衡工具：属性、护甲和暴击曲线要能解释</title><link>https://plumephp.com/phaser-damage-formula-balance-tools-2026/</link><pubDate>Tue, 21 Apr 2026 16:39:00 +0800</pubDate><guid>https://plumephp.com/phaser-damage-formula-balance-tools-2026/</guid><description>&lt;h2 id="伤害公式不是越复杂越专业"&gt;伤害公式不是越复杂越专业&lt;/h2&gt;
&lt;p&gt;Phaser 做 RPG、动作冒险、塔防或割草游戏时，伤害公式很快会从 &lt;code&gt;damage = attack - defense&lt;/code&gt; 变成一团公式：攻击、技能倍率、元素克制、护甲减免、暴击、等级压制、随机浮动、Buff、减伤、护盾、穿透。公式复杂不一定坏，但如果团队解释不了“为什么这一刀是 137”，玩家和策划都会失去信心。平衡系统最重要的品质是可解释和可调。&lt;/p&gt;</description></item><item><title>Phaser 粒子与 VFX 预算：对象池、优先级和低端机降级要提前定</title><link>https://plumephp.com/phaser-vfx-particle-budget-2026/</link><pubDate>Mon, 20 Apr 2026 19:52:00 +0800</pubDate><guid>https://plumephp.com/phaser-vfx-particle-budget-2026/</guid><description>&lt;h2 id="特效不是越多越爽"&gt;特效不是越多越爽&lt;/h2&gt;
&lt;p&gt;Phaser 游戏进入打磨阶段后，团队很容易不断加特效：命中火花、爆炸烟尘、拾取闪光、升级光柱、天气粒子、按钮反馈、Boss 弹幕尾焰。每个特效单独看都不贵，但同屏叠加后，低端手机帧率会掉，画面也会变得难读。更糟的是，特效常常由不同系统直接创建，没有统一预算：武器觉得自己重要，怪物死亡觉得自己重要，UI 奖励也觉得自己重要。结果就是关键预警被普通粒子盖住，玩家看不清危险。&lt;/p&gt;</description></item><item><title>Phaser 新手引导导演：步骤条件、遮罩和跳过逻辑要尊重玩家</title><link>https://plumephp.com/phaser-tutorial-onboarding-director-2026/</link><pubDate>Sat, 18 Apr 2026 10:11:00 +0800</pubDate><guid>https://plumephp.com/phaser-tutorial-onboarding-director-2026/</guid><description>&lt;h2 id="新手引导不是把玩家的手按在按钮上"&gt;新手引导不是把玩家的手按在按钮上&lt;/h2&gt;
&lt;p&gt;很多 Phaser 游戏的新手引导会犯一个错误：每一步都弹遮罩，强制玩家点指定按钮，不点就不能继续。短期看完成率高，长期看玩家烦。尤其是动作、策略、解谜类游戏，玩家需要理解为什么操作，而不是只完成点击。好的新手引导像导演：在合适时机给提示、限制危险操作、允许玩家试错、必要时跳过，并且不会因为版本更新或 UI 改动就卡死。&lt;/p&gt;</description></item><item><title>Phaser 平台游戏检查点系统：复活、掉落保护和临时状态恢复要讲规则</title><link>https://plumephp.com/phaser-platformer-checkpoint-respawn-2026/</link><pubDate>Fri, 17 Apr 2026 08:36:00 +0800</pubDate><guid>https://plumephp.com/phaser-platformer-checkpoint-respawn-2026/</guid><description>&lt;h2 id="检查点决定玩家愿不愿意再试一次"&gt;检查点决定玩家愿不愿意再试一次&lt;/h2&gt;
&lt;p&gt;平台动作游戏的失败很常见：跳早了、被刺碰到、掉进坑、被移动平台挤下去。玩家能否接受失败，取决于复活是否公平。检查点太远，玩家觉得被惩罚；检查点太近，挑战没有压力；复活后敌人状态混乱、机关位置不对、镜头还停在死亡点，玩家会觉得系统粗糙。Phaser 做平台控制不难，但检查点系统需要认真设计。&lt;/p&gt;</description></item><item><title>Phaser 大地图分块加载：Chunk、对象激活和边界预取决定流畅度</title><link>https://plumephp.com/phaser-large-world-chunk-streaming-2026/</link><pubDate>Wed, 15 Apr 2026 14:33:00 +0800</pubDate><guid>https://plumephp.com/phaser-large-world-chunk-streaming-2026/</guid><description>&lt;h2 id="大地图不是把-tilemap-放大十倍"&gt;大地图不是把 Tilemap 放大十倍&lt;/h2&gt;
&lt;p&gt;Phaser 做小地图很直接：加载一个 Tilemap，创建图层，玩家在里面移动。等地图变成几千乘几千格，问题就来了。首次加载慢，内存涨，碰撞对象太多，远处 NPC 还在 update，玩家跨区域时卡一下，移动端直接崩。很多项目以为“大地图优化”只是减少贴图尺寸，实际上更核心的是分块加载和对象激活策略。&lt;/p&gt;</description></item><item><title>Phaser 成就解锁流水线：条件监听、进度统计和弹窗节流要可靠</title><link>https://plumephp.com/phaser-achievement-unlock-pipeline-2026/</link><pubDate>Tue, 14 Apr 2026 13:47:00 +0800</pubDate><guid>https://plumephp.com/phaser-achievement-unlock-pipeline-2026/</guid><description>&lt;h2 id="成就系统不是弹一个已完成"&gt;成就系统不是弹一个“已完成”&lt;/h2&gt;
&lt;p&gt;成就看起来像外围系统：击杀 100 个敌人，通关第一章，收集 10 个隐藏物，弹一个提示。真正上线后，它会牵涉事件统计、存档、云同步、奖励、平台成就、弹窗节流和防重复解锁。若每个玩法系统自己判断成就，就会出现重复弹窗、进度不准、离线解锁丢失、版本更新后旧玩家无法补发成就等问题。成就系统要像一条流水线，持续接收游戏事件，更新进度，判断条件，发出解锁结果。&lt;/p&gt;</description></item><item><title>Phaser 自适应音乐系统：音频总线、分层音乐和状态切换要平滑</title><link>https://plumephp.com/phaser-adaptive-music-audio-mixer-2026/</link><pubDate>Sun, 12 Apr 2026 21:07:00 +0800</pubDate><guid>https://plumephp.com/phaser-adaptive-music-audio-mixer-2026/</guid><description>&lt;h2 id="音乐不是播一首循环就结束"&gt;音乐不是播一首循环就结束&lt;/h2&gt;
&lt;p&gt;Phaser 游戏里，音频经常被放到最后：进入场景播放 BGM，点击按钮播音效，战斗时换一首更激烈的音乐。这样能工作，但很难形成高级体验。玩家从探索走进危险区域，音乐应该逐渐紧张；Boss 破防时鼓点可以加重；战斗结束后音乐不该突然切断；打开菜单时音乐可以降低而不是停止。自适应音乐的目标是让声音跟随游戏状态变化，同时不打断节奏。&lt;/p&gt;</description></item><item><title>Phaser 天气环境系统：雨雪、风场、地面湿滑和性能降级要同一套规则</title><link>https://plumephp.com/phaser-weather-environment-system-2026/</link><pubDate>Sat, 11 Apr 2026 20:16:00 +0800</pubDate><guid>https://plumephp.com/phaser-weather-environment-system-2026/</guid><description>&lt;h2 id="天气不是屏幕前面飘几条雨线"&gt;天气不是屏幕前面飘几条雨线&lt;/h2&gt;
&lt;p&gt;Phaser 游戏做天气很容易从粒子开始：下雨就发射蓝色线条，下雪就飘白点，刮风就让粒子斜一点。这样的视觉能让截图好看，却很容易和玩法脱节。玩家明明看到暴雨，地面却不湿滑；雪天没有脚印；风很大但弹道不受影响；低端手机雨粒子一多就掉帧。天气系统如果只是装饰，会显得廉价；如果每个天气都临时改玩法，又会很快失控。&lt;/p&gt;</description></item><item><title>Phaser 合成与工作台系统：配方、材料校验和队列失败回滚要闭环</title><link>https://plumephp.com/phaser-crafting-recipe-workbench-2026/</link><pubDate>Fri, 10 Apr 2026 09:42:00 +0800</pubDate><guid>https://plumephp.com/phaser-crafting-recipe-workbench-2026/</guid><description>&lt;h2 id="合成系统不是材料够了就扣"&gt;合成系统不是材料够了就扣&lt;/h2&gt;
&lt;p&gt;Phaser RPG、生存建造、农场和放置游戏都常见合成系统。玩家把木头和石头放进工作台，得到斧头；把草药和瓶子合成药水；把低级材料升级成高级材料。看起来只是检查材料、扣材料、加物品，但真实项目会很快变复杂：配方需要解锁，工作台有等级，合成需要时间，队列可取消，材料可能来自背包或仓库，活动期间产物翻倍，网络失败要回滚，玩家连续点击不能重复扣料。合成是经济系统的一部分，必须严谨。&lt;/p&gt;</description></item><item><title>Phaser 2D 载具控制：加速、漂移、抓地力和碰撞反馈要按手感调</title><link>https://plumephp.com/phaser-vehicle-controller-drift-2026/</link><pubDate>Thu, 09 Apr 2026 11:22:00 +0800</pubDate><guid>https://plumephp.com/phaser-vehicle-controller-drift-2026/</guid><description>&lt;h2 id="2d-载具手感不是把角色速度调快"&gt;2D 载具手感不是把角色速度调快&lt;/h2&gt;
&lt;p&gt;Phaser 里做 2D 载具，最简单的方法是把角色换成车图，按方向键改变速度。但车和角色的手感完全不同。角色可以瞬间转向，车需要加速、刹车、转弯半径、惯性和抓地力。若只是用角色控制器，车会像滑动的图标；若完全按真实物理，车又可能难以控制。载具系统的目标不是物理仿真，而是让玩家相信它是一辆有重量、有惯性、可被掌控的车。&lt;/p&gt;</description></item><item><title>Phaser 生存刷怪导演：波次、压力预算和出生点不能只靠随机</title><link>https://plumephp.com/phaser-wave-spawn-director-2026/</link><pubDate>Tue, 07 Apr 2026 12:48:00 +0800</pubDate><guid>https://plumephp.com/phaser-wave-spawn-director-2026/</guid><description>&lt;h2 id="刷怪不是越多越刺激"&gt;刷怪不是越多越刺激&lt;/h2&gt;
&lt;p&gt;Phaser 生存射击、割草、塔防混合玩法里，刷怪系统经常从一个定时器开始：每隔 1 秒随机生成一个敌人。原型阶段没问题，但一旦进入内容制作，就会出现各种失控：玩家刚开局就被包围，远程怪在屏幕外无预警攻击，精英怪和小怪同一时间堆叠导致掉帧，地图某个角落刷怪太近，玩家死亡后团队说不清是数值太高还是出生点不合理。刷怪导演的职责不是把敌人丢进场景，而是控制压力、节奏和可读性。&lt;/p&gt;</description></item><item><title>Phaser 键盘与手柄改键系统：动作映射、冲突检测和本地保存要统一</title><link>https://plumephp.com/phaser-gamepad-keyboard-remapping-2026/</link><pubDate>Mon, 06 Apr 2026 17:31:00 +0800</pubDate><guid>https://plumephp.com/phaser-gamepad-keyboard-remapping-2026/</guid><description>&lt;h2 id="改键系统不是设置页里的附加功能"&gt;改键系统不是设置页里的附加功能&lt;/h2&gt;
&lt;p&gt;很多 Phaser 游戏最初只写键盘输入：&lt;code&gt;WASD&lt;/code&gt; 移动，空格跳跃，鼠标攻击。等玩家开始反馈“我想用方向键”“手柄 A/B 反了”“笔记本键位冲突”“左撇子不舒服”时，团队才补一个改键界面。若一开始输入直接散落在各个 Scene 中，补改键会非常痛苦：战斗 Scene 读空格，菜单 Scene 读 Enter，教程写死“按 W”，移动端按钮又是另一套逻辑。输入系统应该从一开始就以“动作”为核心，而不是以“按键”为核心。&lt;/p&gt;</description></item><item><title>Phaser 潜行视野系统：视野锥、遮挡检测和警戒状态要一起算</title><link>https://plumephp.com/phaser-stealth-vision-cone-lighting-2026/</link><pubDate>Sat, 04 Apr 2026 18:14:00 +0800</pubDate><guid>https://plumephp.com/phaser-stealth-vision-cone-lighting-2026/</guid><description>&lt;h2 id="潜行玩法最怕玩家觉得不公平"&gt;潜行玩法最怕玩家觉得“不公平”&lt;/h2&gt;
&lt;p&gt;潜行动作游戏里，敌人发现玩家是一件非常敏感的事。玩家可以接受被发现，但必须知道为什么被发现：我站在灯下、走进视野锥、发出了声音、碰到了警戒线。如果敌人隔墙看到玩家，或者玩家明明在阴影里却瞬间暴露，潜行感会立刻崩。Phaser 做 2D 潜行原型并不难，难的是让视野、遮挡、灯光和警戒状态形成一致规则。&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 战斗反馈系统：Hit Stop、屏幕震动和伤害数字要服务手感</title><link>https://plumephp.com/phaser-combat-hitstop-screen-shake-2026/</link><pubDate>Thu, 02 Apr 2026 10:26:00 +0800</pubDate><guid>https://plumephp.com/phaser-combat-hitstop-screen-shake-2026/</guid><description>&lt;h2 id="战斗反馈不是把屏幕摇到玩家头晕"&gt;战斗反馈不是把屏幕摇到玩家头晕&lt;/h2&gt;
&lt;p&gt;Phaser 动作游戏最容易在“能打”和“好打”之间卡住。攻击能扣血，敌人能死亡，动画也能播放，但玩家总觉得拳头像打在棉花上。团队通常第一反应是加特效：受击闪白、粒子爆炸、屏幕震动、伤害数字、音效叠加。加完之后，问题可能更糟：小怪被打一下像核爆，Boss 大招反而不突出，移动端帧率下降，玩家分不清自己是受伤还是命中敌人。战斗反馈的关键不是多，而是分层、限量和可解释。&lt;/p&gt;</description></item><item><title>Phaser 塔防索敌系统：炮塔、仇恨权重和弹道不要只写最近目标</title><link>https://plumephp.com/phaser-tower-defense-targeting-2026/</link><pubDate>Wed, 01 Apr 2026 09:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-tower-defense-targeting-2026/</guid><description>&lt;h2 id="塔防的第一手感来自塔为什么打它"&gt;塔防的第一手感来自“塔为什么打它”&lt;/h2&gt;
&lt;p&gt;很多 Phaser 塔防原型一开始会用最简单的逻辑：遍历范围内敌人，选择距离炮塔最近的一个，然后发射子弹。这个规则可以让炮塔动起来，却很快会暴露问题。快到终点的敌人明明快漏了，炮塔还在打刚进入范围的小怪；高护甲敌人被低伤害塔一直锁定，浪费输出；飞行怪经过时，地面塔误打；玩家升级了减速塔，却发现它总是把减速浪费在已经被减速的目标上。塔防不是“有敌人就打”，而是玩家花钱建塔后，系统要用可解释的规则把这笔投资变成可靠输出。&lt;/p&gt;</description></item><item><title>Phaser 数据驱动刷怪工具：权重表、预演和内容校验</title><link>https://plumephp.com/phaser-data-driven-enemy-spawner-tools-2026/</link><pubDate>Tue, 31 Mar 2026 15:38:00 +0800</pubDate><guid>https://plumephp.com/phaser-data-driven-enemy-spawner-tools-2026/</guid><description>&lt;h2 id="为什么这个系统值得单独设计"&gt;为什么这个系统值得单独设计&lt;/h2&gt;
&lt;p&gt;关卡设计师想在废弃商场里做三段遭遇：入口少量弱敌，电梯厅混合远程敌，撤离时出现精英压迫。程序如果每次都改 Scene 代码，内容迭代会很慢。更好的方式是把刷怪规则做成可校验、可预演的数据。&lt;/p&gt;</description></item><item><title>Phaser 房间装饰编辑器：家具吸附、层级、保存和撤销</title><link>https://plumephp.com/phaser-decorating-room-furniture-editor-2026/</link><pubDate>Mon, 30 Mar 2026 14:07:00 +0800</pubDate><guid>https://plumephp.com/phaser-decorating-room-furniture-editor-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;社交小游戏里，玩家布置自己的小屋：把沙发贴到墙边，旋转地毯，叠放盆栽和矮桌，保存后邀请朋友访问。这个体验看起来轻松，但编辑器一旦不好用，玩家会很快放弃创作。&lt;/p&gt;</description></item><item><title>Phaser 存档迁移与版本化：从 LocalStorage 到可恢复数据管线</title><link>https://plumephp.com/phaser-save-migration-versioning-2026/</link><pubDate>Mon, 30 Mar 2026 08:49:00 +0800</pubDate><guid>https://plumephp.com/phaser-save-migration-versioning-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-runtime-config-feature-flags-2026/</link><pubDate>Sun, 29 Mar 2026 19:45:00 +0800</pubDate><guid>https://plumephp.com/phaser-runtime-config-feature-flags-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;团队想灰度开放新 Boss、关闭有问题的广告入口、调整每日奖励倍率，并让旧客户端安全忽略未知配置。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。如果所有开关写死在代码里，每次运营调整都要发版；如果完全信任远程配置，又可能被坏配置拖垮客户端。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&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-coop-revive-downstate-2026/</link><pubDate>Fri, 27 Mar 2026 18:27:00 +0800</pubDate><guid>https://plumephp.com/phaser-coop-revive-downstate-2026/</guid><description>&lt;h2 id="为什么这个系统值得单独设计"&gt;为什么这个系统值得单独设计&lt;/h2&gt;
&lt;p&gt;合作动作游戏中，队友被精英敌人击倒，倒计时还剩 18 秒。另一个玩家冲过去救援，但敌人转身逼近。救还是打，读条是否会被中断，倒地玩家能否爬向安全区，这些都决定合作体验是否紧张而公平。&lt;/p&gt;</description></item><item><title>Phaser 技能树系统：节点解锁、前置条件、重置和构筑预览要能解释</title><link>https://plumephp.com/phaser-modular-skill-tree-2026/</link><pubDate>Thu, 26 Mar 2026 13:26:00 +0800</pubDate><guid>https://plumephp.com/phaser-modular-skill-tree-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;玩家升级获得技能点，在火焰、冰霜和生存三条分支中选择；某些节点需要前置，某些节点互斥。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。技能树如果只是按钮加点，后期会遇到前置变化、重置退款、版本迁移和 UI 预览不一致的问题。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser AI 导演难度曲线：压力值、刷怪节奏和喘息窗口</title><link>https://plumephp.com/phaser-ai-director-difficulty-curves-2026/</link><pubDate>Wed, 25 Mar 2026 18:44:00 +0800</pubDate><guid>https://plumephp.com/phaser-ai-director-difficulty-curves-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;合作生存射击游戏里，玩家小队在废弃医院搜集样本。导演系统不能只每 20 秒刷一波敌人，而要观察血量、弹药、倒地次数、推进速度和房间结构，在紧张与喘息之间摆动。&lt;/p&gt;</description></item><item><title>Phaser 恐怖游戏理智值系统：视野扰动、音画反馈和恢复边界</title><link>https://plumephp.com/phaser-horror-sanity-visibility-2026/</link><pubDate>Tue, 24 Mar 2026 23:14:00 +0800</pubDate><guid>https://plumephp.com/phaser-horror-sanity-visibility-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-item-durability-repair-loop-2026/</link><pubDate>Tue, 24 Mar 2026 10:19:00 +0800</pubDate><guid>https://plumephp.com/phaser-item-durability-repair-loop-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;生存动作游戏里，玩家用铁斧砍树、格挡野兽攻击、在篝火旁修理装备。斧头耐久降到 15% 后攻击音效变钝，低于 5% 可能在下一次重击后损坏。耐久不是惩罚玩家，而是让资源循环有意义。&lt;/p&gt;</description></item><item><title>Phaser 电影化回放镜头：关键帧、目标跟随、缓动和跳过要可控</title><link>https://plumephp.com/phaser-camera-cinematic-replay-2026/</link><pubDate>Mon, 23 Mar 2026 21:12:00 +0800</pubDate><guid>https://plumephp.com/phaser-camera-cinematic-replay-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;Boss 被击败后，镜头从玩家拉到倒塌的塔，再切到奖励宝箱；玩家可以跳过，但跳过后状态必须正确。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。如果镜头演出只是多个 tween 拼接，跳过、重播、慢动作和目标丢失会产生大量边界 bug。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 过场动画跳过与恢复：状态提交点、镜头、音频和任务推进</title><link>https://plumephp.com/phaser-cutscene-skip-recovery-2026/</link><pubDate>Sun, 22 Mar 2026 13:55:00 +0800</pubDate><guid>https://plumephp.com/phaser-cutscene-skip-recovery-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;动作冒险游戏里，玩家打败守门 Boss 后触发一段 40 秒过场：镜头推近大门、NPC 交出钥匙、门打开、任务进入下一阶段。老玩家会按住跳过，但跳过后世界状态必须和看完一致。&lt;/p&gt;</description></item><item><title>Phaser 移动平台与电梯：路径、载客、挤压保护和同步</title><link>https://plumephp.com/phaser-moving-platform-elevator-system-2026/</link><pubDate>Sat, 21 Mar 2026 18:36:00 +0800</pubDate><guid>https://plumephp.com/phaser-moving-platform-elevator-system-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-sports-ball-possession-2026/</link><pubDate>Sat, 21 Mar 2026 12:09:00 +0800</pubDate><guid>https://plumephp.com/phaser-sports-ball-possession-2026/</guid><description>&lt;h2 id="为什么这个系统值得单独设计"&gt;为什么这个系统值得单独设计&lt;/h2&gt;
&lt;p&gt;一款 3v3 街头球类小游戏里，玩家控制角色冲刺、传球、假动作和射门。球在场上快速移动，角色碰撞频繁。如果球权只靠物理碰撞决定，玩家会觉得球像失控的弹珠；如果球权全靠脚本吸附，又会失去运动感。&lt;/p&gt;</description></item><item><title>Phaser 每日签到日历：连续天数、补签、时区和奖励预览要可信</title><link>https://plumephp.com/phaser-daily-login-streak-calendar-2026/</link><pubDate>Fri, 20 Mar 2026 09:33:00 +0800</pubDate><guid>https://plumephp.com/phaser-daily-login-streak-calendar-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;玩家每天打开游戏看到签到日历，连续 7 天有大奖，漏签可以用补签券补一次，月底活动自动结算。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。签到看似简单，但时区、跨天、补签、奖励预览和重复领取都会出问题；本地时间不能作为权威。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 赛季通行证进度：等级、任务、补领和动画节奏</title><link>https://plumephp.com/phaser-season-pass-progression-2026/</link><pubDate>Thu, 19 Mar 2026 22:03:00 +0800</pubDate><guid>https://plumephp.com/phaser-season-pass-progression-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;休闲射击游戏开启第三赛季，玩家打一局后获得 850 点赛季经验，从 12 级升到 14 级，免费轨道拿到金币，付费轨道有皮肤但尚未解锁。界面要让玩家清楚发生了什么。&lt;/p&gt;</description></item><item><title>Phaser 竞速圈速系统：检查点、防抄近路和成绩回放摘要</title><link>https://plumephp.com/phaser-lap-timing-racing-checkpoints-2026/</link><pubDate>Wed, 18 Mar 2026 20:46:00 +0800</pubDate><guid>https://plumephp.com/phaser-lap-timing-racing-checkpoints-2026/</guid><description>&lt;h2 id="为什么这个系统值得单独设计"&gt;为什么这个系统值得单独设计&lt;/h2&gt;
&lt;p&gt;俯视角竞速游戏里，玩家在夜间城市赛道刷圈速。最后 0.08 秒的差距决定是否进入好友榜前三。系统必须准确记录每一圈、每个检查点和每次重置，否则玩家会怀疑排行榜不公平。&lt;/p&gt;</description></item><item><title>Phaser 回合制行动条：速度、插队、延迟行动和预览</title><link>https://plumephp.com/phaser-turn-based-initiative-timeline-2026/</link><pubDate>Wed, 18 Mar 2026 08:24:00 +0800</pubDate><guid>https://plumephp.com/phaser-turn-based-initiative-timeline-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;回合制 RPG 战斗里，角色和敌人不按固定你一刀我一刀行动，而是根据速度进入行动条。盗贼可以插队，法师蓄力会延迟，Boss 狂暴后行动频率变快。玩家需要在 UI 上提前看到这些变化。&lt;/p&gt;</description></item><item><title>Phaser 公会客户端 UI：成员列表、权限、申请和异步刷新要稳</title><link>https://plumephp.com/phaser-clan-guild-client-ui-2026/</link><pubDate>Tue, 17 Mar 2026 16:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-clan-guild-client-ui-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;玩家在大厅打开战队界面，查看成员、申请列表、公告、捐献进度和在线状态；管理员可以批准申请或踢人。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。公会数据是异步和多人共享的。若客户端乐观更新不当，成员列表会跳动，权限按钮会误显示，重复点击可能造成状态错乱。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 玩家交易市场客户端：列表、竞价、锁定和失败回滚</title><link>https://plumephp.com/phaser-marketplace-trading-client-2026/</link><pubDate>Mon, 16 Mar 2026 09:36:00 +0800</pubDate><guid>https://plumephp.com/phaser-marketplace-trading-client-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-metroidvania-ability-gates-2026/</link><pubDate>Sun, 15 Mar 2026 11:18:00 +0800</pubDate><guid>https://plumephp.com/phaser-metroidvania-ability-gates-2026/</guid><description>&lt;h2 id="为什么这个系统值得单独设计"&gt;为什么这个系统值得单独设计&lt;/h2&gt;
&lt;p&gt;银河城游戏最迷人的时刻，是玩家拿到二段跳后突然想起两个小时前看过的高台。返回旧区域，越过原本过不去的缺口，发现新路线和隐藏 Boss。这个体验依赖能力门系统，而不是靠策划在地图上随手摆障碍。&lt;/p&gt;</description></item><item><title>Phaser 弹珠台玩法：物理碰撞、连击倍率和判分保护</title><link>https://plumephp.com/phaser-pinball-physics-scoring-2026/</link><pubDate>Sat, 14 Mar 2026 15:41:00 +0800</pubDate><guid>https://plumephp.com/phaser-pinball-physics-scoring-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;弹珠台小游戏里，球撞上霓虹蘑菇加 100 分，连续点亮三盏灯后倍率翻倍，进入上方轨道会触发多球。玩家能接受夸张物理，但不能接受分数乱跳或挡板没有响应。&lt;/p&gt;</description></item><item><title>Phaser 钓鱼小游戏：鱼线张力、咬钩窗口和奖励表要让拉扯有戏</title><link>https://plumephp.com/phaser-fishing-minigame-rod-tension-2026/</link><pubDate>Sat, 14 Mar 2026 08:55:00 +0800</pubDate><guid>https://plumephp.com/phaser-fishing-minigame-rod-tension-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;玩家在湖边抛竿，浮漂轻轻晃动，鱼咬钩后进入拉扯阶段；拉太猛断线，放太松鱼逃走。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。钓鱼如果只做成进度条，会很快无聊；如果随机太重，玩家又觉得结果不可控。张力、鱼耐力和水域奖励表要一起设计。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 手势绘制施法：轨迹采样、容错识别和失败反馈</title><link>https://plumephp.com/phaser-gesture-drawing-spellcasting-2026/</link><pubDate>Fri, 13 Mar 2026 20:17:00 +0800</pubDate><guid>https://plumephp.com/phaser-gesture-drawing-spellcasting-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;一款动作 Roguelite 想让法师不只是点按钮。玩家按住鼠标或触屏，在角色身边画一个闪电形状释放链雷，画圆释放护盾，画短斜线释放冲刺。系统要有仪式感，也要能容错。&lt;/p&gt;</description></item><item><title>Phaser 群体移动与避让：拥堵、队列和低成本 AI</title><link>https://plumephp.com/phaser-flocking-crowd-avoidance-2026/</link><pubDate>Thu, 12 Mar 2026 14:21:00 +0800</pubDate><guid>https://plumephp.com/phaser-flocking-crowd-avoidance-2026/</guid><description>&lt;h2 id="为什么这个系统值得单独设计"&gt;为什么这个系统值得单独设计&lt;/h2&gt;
&lt;p&gt;一款城镇经营游戏里，早晨 8 点工人从宿舍走向矿井，商人推车去市场，巡逻队穿过广场。屏幕上同时有上百个角色，如果每个人只沿最短路径走，他们会在门口挤成一团，像坏掉的传送带。&lt;/p&gt;</description></item><item><title>Phaser 潜行声音传播：噪声半径、材质衰减和敌人听觉</title><link>https://plumephp.com/phaser-sound-propagation-stealth-2026/</link><pubDate>Wed, 11 Mar 2026 22:04:00 +0800</pubDate><guid>https://plumephp.com/phaser-sound-propagation-stealth-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-dialogue-portrait-lipsync-2026/</link><pubDate>Wed, 11 Mar 2026 20:22:00 +0800</pubDate><guid>https://plumephp.com/phaser-dialogue-portrait-lipsync-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;剧情 RPG 中，角色立绘有身体、眼睛、嘴型、情绪特效和说话高亮。语音播放时口型跟随，没语音时按文字节奏开合。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。如果打字机、语音和立绘动画各自运行，玩家跳过文本时嘴还在动，切换表情时旧嘴型残留，回看记录也会出现不同步。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 自动化生产站：配方队列、搬运节拍和缺料反馈</title><link>https://plumephp.com/phaser-crafting-station-automation-2026/</link><pubDate>Tue, 10 Mar 2026 15:06:00 +0800</pubDate><guid>https://plumephp.com/phaser-crafting-station-automation-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;生存建造游戏的中期，玩家把矿石放进熔炉，传送带把铁锭送到装配台，装配台每 6 秒产出齿轮。看起来像一串动画，真正的核心是离散节拍、缓冲区和缺料原因。&lt;/p&gt;</description></item><item><title>Phaser 绳索摆荡手感：Matter 约束、抓取点和释放速度</title><link>https://plumephp.com/phaser-rope-swing-matter-constraints-2026/</link><pubDate>Mon, 09 Mar 2026 09:47:00 +0800</pubDate><guid>https://plumephp.com/phaser-rope-swing-matter-constraints-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-city-builder-placement-grid-2026/</link><pubDate>Sun, 08 Mar 2026 19:15:00 +0800</pubDate><guid>https://plumephp.com/phaser-city-builder-placement-grid-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;一款轻量城建游戏里，玩家把水泵放在河边，把仓库接到道路，把住宅区绕开污染源。鼠标拖动建筑时，绿色预览表示可放，红色显示冲突，旋转后占地和道路口也要跟着变化。&lt;/p&gt;</description></item><item><title>Phaser 宠物伙伴 AI：跟随、拾取、技能触发和亲密度要分层</title><link>https://plumephp.com/phaser-pet-companion-ai-2026/</link><pubDate>Sun, 08 Mar 2026 11:40:00 +0800</pubDate><guid>https://plumephp.com/phaser-pet-companion-ai-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;一个冒险游戏里，玩家带着小机器人探索遗迹。它会跟随、帮忙拾取碎片、在战斗中放护盾，还会根据亲密度解锁表情。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。宠物如果只是每帧追玩家，会挡路、抖动、抢镜头；如果技能触发写在战斗里，又会和亲密度、冷却、动画混成一团。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 分支对话后果日志：选择、条件、旗标和回看面板要闭环</title><link>https://plumephp.com/phaser-dialogue-choice-consequence-log-2026/</link><pubDate>Sat, 07 Mar 2026 11:42:00 +0800</pubDate><guid>https://plumephp.com/phaser-dialogue-choice-consequence-log-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;叙事冒险游戏里，玩家在雨夜码头和线人谈判。选择一句安抚的话，会让线人第二章愿意提供船票；选择威胁，则当前能拿到情报，但城市声望下降。玩家三小时后回来，需要知道自己为什么被某个 NPC 拒绝。&lt;/p&gt;</description></item><item><title>Phaser 可破坏地形：Tilemap 重建、碰撞刷新和爆炸边界</title><link>https://plumephp.com/phaser-destructible-terrain-tilemap-2026/</link><pubDate>Fri, 06 Mar 2026 16:08:00 +0800</pubDate><guid>https://plumephp.com/phaser-destructible-terrain-tilemap-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-cooking-timing-minigame-2026/</link><pubDate>Thu, 05 Mar 2026 18:06:00 +0800</pubDate><guid>https://plumephp.com/phaser-cooking-timing-minigame-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;玩家在餐车关卡里切菜、翻炒、收汁、装盘，每一步都有短暂最佳窗口；做得好会得到香气特效，做晚了会糊锅。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。如果每个按钮自己倒计时，步骤之间会互相抢状态，暂停、倍速、失焦和教学都会让火候窗口漂移。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item><item><title>Phaser 本地双人分屏：镜头、输入归属和 UI 安全区</title><link>https://plumephp.com/phaser-local-coop-splitscreen-cameras-2026/</link><pubDate>Thu, 05 Mar 2026 09:52:00 +0800</pubDate><guid>https://plumephp.com/phaser-local-coop-splitscreen-cameras-2026/</guid><description>&lt;h2 id="为什么值得单独做成系统"&gt;为什么值得单独做成系统&lt;/h2&gt;
&lt;p&gt;客厅双人合作游戏里，一个玩家用键盘，另一个玩家用手柄。两人靠近时共享一个镜头，分开探索时画面左右分屏。宝箱、敌人、任务提示和暂停菜单都要清楚知道自己属于谁。&lt;/p&gt;</description></item><item><title>Phaser RTS 框选与指令队列：从矩形选择到可撤销命令</title><link>https://plumephp.com/phaser-rts-selection-command-2026/</link><pubDate>Wed, 04 Mar 2026 19:28:00 +0800</pubDate><guid>https://plumephp.com/phaser-rts-selection-command-2026/</guid><description>&lt;h2 id="为什么要把它当成系统来做"&gt;为什么要把它当成系统来做&lt;/h2&gt;
&lt;p&gt;一款俯视角科幻 RTS 原型里，玩家要同时操控矿车、步兵和维修无人机。鼠标拖出一个框，单位高亮；右键点击地面，队伍分散移动；按住 Shift，后续指令进入队列而不是覆盖当前任务。&lt;/p&gt;</description></item><item><title>Phaser 视差背景与深度裁剪：远景层不是多放几张图</title><link>https://plumephp.com/phaser-parallax-background-depth-culling-2026/</link><pubDate>Tue, 03 Mar 2026 10:32:00 +0800</pubDate><guid>https://plumephp.com/phaser-parallax-background-depth-culling-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-underwater-oxygen-current-system-2026/</link><pubDate>Mon, 02 Mar 2026 16:28:00 +0800</pubDate><guid>https://plumephp.com/phaser-underwater-oxygen-current-system-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-hex-grid-strategy-map-2026/</link><pubDate>Sun, 01 Mar 2026 10:14:00 +0800</pubDate><guid>https://plumephp.com/phaser-hex-grid-strategy-map-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-restaurant-seating-pathfinding-2026/</link><pubDate>Sat, 28 Feb 2026 18:55:00 +0800</pubDate><guid>https://plumephp.com/phaser-restaurant-seating-pathfinding-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-archery-wind-aiming-system-2026/</link><pubDate>Wed, 25 Feb 2026 12:38:00 +0800</pubDate><guid>https://plumephp.com/phaser-archery-wind-aiming-system-2026/</guid><description>&lt;h2 id="为什么这个玩法不能只写成演示"&gt;为什么这个玩法不能只写成演示&lt;/h2&gt;
&lt;p&gt;玩家站在山谷边参加射箭挑战。拉弓时间越长，箭速越快；横风会把箭吹偏；远处靶子有内圈、外圈和移动遮挡。玩家需要感觉自己在瞄准，而不是掷骰子。&lt;/p&gt;
&lt;p&gt;射箭系统要平衡可控和变化。蓄力、重力、风、目标移动和辅助瞄准都影响命中。若只画一条直线预览，真实弹道会让玩家困惑；若预览过于准确，挑战又会消失。 本文按一个可上线的小系统拆解，重点不是罗列 Phaser API，而是把输入、规则、表现、调试和内容配置的边界说明白。只要这些边界清楚，后续加关卡、加活动、加存档或加移动端适配，都不会反复推倒。&lt;/p&gt;</description></item><item><title>Phaser 涂色占地玩法：区域填充、边界判定和得分同步</title><link>https://plumephp.com/phaser-paint-territory-capture-2026/</link><pubDate>Sun, 22 Feb 2026 17:12:00 +0800</pubDate><guid>https://plumephp.com/phaser-paint-territory-capture-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-drone-delivery-route-planner-2026/</link><pubDate>Thu, 19 Feb 2026 09:34:00 +0800</pubDate><guid>https://plumephp.com/phaser-drone-delivery-route-planner-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-magic-shop-order-fulfillment-2026/</link><pubDate>Mon, 16 Feb 2026 15:08:00 +0800</pubDate><guid>https://plumephp.com/phaser-magic-shop-order-fulfillment-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-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-casino-slot-machine-reels-2026/</link><pubDate>Tue, 10 Feb 2026 19:06:00 +0800</pubDate><guid>https://plumephp.com/phaser-casino-slot-machine-reels-2026/</guid><description>&lt;h2 id="为什么这个玩法不能只写成演示"&gt;为什么这个玩法不能只写成演示&lt;/h2&gt;
&lt;p&gt;休闲活动里，玩家消耗一张抽奖券，三列卷轴快速旋转，最后停在一组图标上。真正结果早已由权威逻辑确定，Phaser 负责把这个结果演得有节奏、有期待，但不能在动画里篡改奖励。&lt;/p&gt;</description></item><item><title>Phaser 滑雪障碍赛：坡度、转向惯性、雪痕和门旗判定</title><link>https://plumephp.com/phaser-skiing-slalom-snow-trails-2026/</link><pubDate>Sat, 07 Feb 2026 08:42:00 +0800</pubDate><guid>https://plumephp.com/phaser-skiing-slalom-snow-trails-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-crane-claw-machine-physics-2026/</link><pubDate>Mon, 02 Feb 2026 10:26:00 +0800</pubDate><guid>https://plumephp.com/phaser-crane-claw-machine-physics-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-device-capability-startup-probe-2026/</link><pubDate>Fri, 30 Jan 2026 10:09:00 +0800</pubDate><guid>https://plumephp.com/phaser-device-capability-startup-probe-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;同一个 Phaser 游戏要跑在桌面 Chrome、低端安卓 WebView、平板 Safari 和嵌入式活动页里。某些设备 WebGL 支持不完整，某些设备音频必须点击后解锁，某些设备内存很低。启动阶段如果不探测，后面的问题会变成随机崩溃。&lt;/p&gt;</description></item><item><title>Phaser 随机种子测试夹具：可复现掉落、关卡和 AI 决策</title><link>https://plumephp.com/phaser-seeded-random-test-harness-2026/</link><pubDate>Tue, 27 Jan 2026 16:37:00 +0800</pubDate><guid>https://plumephp.com/phaser-seeded-random-test-harness-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;玩家说某个地牢房间生成后无路可走，另一个玩家说 Boss 连续三次释放同一招。团队如果不知道当时随机种子，就只能重复试玩碰运气。随机种子测试夹具能让这些问题变成可复现样例。&lt;/p&gt;</description></item><item><title>Phaser 离线挑战结算：本地成绩、重放证据和奖励幂等</title><link>https://plumephp.com/phaser-offline-challenge-settlement-2026/</link><pubDate>Sat, 24 Jan 2026 22:11:00 +0800</pubDate><guid>https://plumephp.com/phaser-offline-challenge-settlement-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;玩家在地铁上断网完成了每日挑战。游戏需要先在本地展示成绩和奖励，等网络恢复后再提交。若处理不好，玩家可能重复领奖，也可能因为断网丢掉一次完美成绩。&lt;/p&gt;</description></item><item><title>Phaser 触屏手势冲突路由：点击、拖拽、缩放和 UI 优先级</title><link>https://plumephp.com/phaser-touch-gesture-conflict-router-2026/</link><pubDate>Wed, 21 Jan 2026 08:58:00 +0800</pubDate><guid>https://plumephp.com/phaser-touch-gesture-conflict-router-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-low-end-texture-quality-scaler-2026/</link><pubDate>Sun, 18 Jan 2026 17:20:00 +0800</pubDate><guid>https://plumephp.com/phaser-low-end-texture-quality-scaler-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;同一款 Phaser 游戏在桌面浏览器上运行顺滑，但低端安卓机进入第二章就白屏或频繁重载。原因不是逻辑太复杂，而是纹理太大、同时加载太多、WebGL 上下文被系统回收。画质降级需要成为系统，而不是临时压几张图。&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><item><title>Phaser 像素字体排版：BitmapText、CJK 回退和清晰缩放</title><link>https://plumephp.com/phaser-pixel-font-bitmap-text-layout-2026/</link><pubDate>Mon, 12 Jan 2026 20:05:00 +0800</pubDate><guid>https://plumephp.com/phaser-pixel-font-bitmap-text-layout-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;像素风 RPG 的菜单需要显示中文任务名、英文物品名、数字价格和手柄提示。美术希望字体保持像素清晰，策划希望长文本不溢出，玩家希望小屏也能看清。字体系统如果只靠默认 Text，很快会模糊或错位。&lt;/p&gt;</description></item><item><title>Phaser 关卡热更新清单：Manifest、资源版本和回滚边界</title><link>https://plumephp.com/phaser-level-hot-update-manifest-2026/</link><pubDate>Fri, 09 Jan 2026 11:48:00 +0800</pubDate><guid>https://plumephp.com/phaser-level-hot-update-manifest-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;一个活动关卡上线后，团队发现第三个房间的门配置错了，玩家会被锁死。重新发整包太慢，只更新关卡 JSON 和一张贴图才是更现实的方案。但热更新如果没有版本和回滚，修 bug 也可能制造更大的 bug。&lt;/p&gt;</description></item><item><title>Phaser 战斗训练场沙盒：招式测试、假人脚本和数值调试</title><link>https://plumephp.com/phaser-combat-training-sandbox-tools-2026/</link><pubDate>Tue, 06 Jan 2026 14:22:00 +0800</pubDate><guid>https://plumephp.com/phaser-combat-training-sandbox-tools-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;动作游戏开发到中期，策划每天都要问：这个新技能能不能接普攻？霸体持续几帧？打大型敌人和小型敌人的命中是否一致？如果每次都进正式关卡找怪测试，效率会很低。训练场沙盒把这些问题集中到一个可控环境里。&lt;/p&gt;</description></item><item><title>Phaser 输入录制器：复现玩家操作、回放 Bug 和调试确定性</title><link>https://plumephp.com/phaser-input-recorder-replay-debugger-2026/</link><pubDate>Sat, 03 Jan 2026 09:16:00 +0800</pubDate><guid>https://plumephp.com/phaser-input-recorder-replay-debugger-2026/</guid><description>&lt;h2 id="为什么要先做底层系统"&gt;为什么要先做底层系统&lt;/h2&gt;
&lt;p&gt;线上玩家反馈“刚才闪避键按了但角色没动”，录屏里只能看到角色被击中，没人知道输入到底有没有进来。一个输入录制器可以把最近 30 秒的键盘、触屏、手柄和场景状态摘要保存下来，让团队用同一组输入复现问题。&lt;/p&gt;</description></item></channel></rss>