本技能用于了解 Phaser 4 相对 v3 的新功能、游戏对象、组件与渲染能力。Phaser 4 重构了 WebGL 渲染引擎,由 RenderNode 图集中管理 WebGL 状态,每个节点只负责一项渲染任务。
主要变更:Pipeline 由 RenderNode 取代;FX(preFX/postFX)由 Filters(filters.internal / filters.external)取代;BitmapMask 由 FilterMask 取代;WebGL 下的 GeometryMask 由 FilterMask 取代(Canvas 仍用 GeometryMask);Bloom、Circle、Gradient、Shine 等派生 FX 改由 Actions 或 GameObjects 提供;Mesh 与 Plane 已移除(未来计划加入正式 3D);Point 建议改用 Vector2。
新增能力包括:CaptureFrame、Gradient、Noise、NoiseCell2D/3D/4D、NoiseSimplex2D/3D、SpriteGPULayer、Stamp、TilemapGPULayer 等 GameObject;Lighting、RenderSteps、RenderNodes 组件;多种混合色调模式与一批新 Filters。此外 v4 使用标准 GL 朝向(纹理 Y=0 在底部)。
用法上,启用滤镜需先调用 enableFilters(),再通过 filters.internal 或 filters.external 添加;内部滤镜在相机变换前运行、开销更低,外部滤镜在屏幕空间运行。光照由 v3 的 setPipeline('Light2D') 改为 setLighting(true),并可用 setSelfShadow() 控制自阴影。自定义渲染节点可通过 renderer.renderNodes.addNodeConstructor() 注册。SpriteGPULayer 适合单张纹理下海量四边形,TilemapGPULayer 适合正交瓦片地图,均仅支持 WebGL。
限制:多数新特性仅 WebGL 可用;GPU 图层不支持多图集或多 tileset,更新缓冲区开销大,TilemapGPULayer 仅支持正交地图且需手动调用 generateLayerDataTexture() 更新;Gradient 运行时修改 ramp 后需调用 ramp.encode()。迁移细节参见 v3 到 v4 迁移指南。