Agent Skills
返回列表
🤖

Phaser 3 核心

AI Agent 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/phaser-core-7gdp。

技能介绍

解决的痛点

Phaser 3 项目常面临三个核心问题:场景生命周期阶段职责模糊(如误在构造函数初始化状态导致重启后数据残留)、资源加载时机不当(在create()阶段访问未完成加载的资源触发undefined错误)、场景切换逻辑错误(混淆start与launch方法导致HUD覆盖游戏画面)。这些问题根源在于对Phaser 3架构设计的理解偏差。

核心能力与实现步骤

  • 游戏配置与启动:通过new Phaser.Game(config)创建实例,配置type: Phaser.AUTO实现WebGL/Canvas自动适配,设置初始场景数组。
  • 场景生命周期管理:每个场景继承Phaser.Scene,实现四阶段:

- init(data):重置运行时状态(如分数、生命值)
- preload():预加载资源(this.load.image()、load.spritesheet())
- create():初始化游戏对象、绑定事件监听
- update(time, delta):实时渲染与逻辑更新

  • 资源加载机制:资源仅在preload()阶段入队,在create()后可用;缓存全局共享,但加载器按场景隔离
  • 跨场景数据传递:通过this.registry存储全局状态(如最高分),或使用this.events.on()实现兄弟场景事件通信
  • 场景切换控制:

- start:停止当前场景并启动目标场景(适合全屏切换)
- launch:并行运行新场景(适合HUD+游戏场景)
- switch:替换同名场景(保持状态)
- sleep/wake:暂停/恢复场景(保留状态)

适用边界与注意事项

  • 不处理物理引擎:移动、碰撞、重力需搭配phaser-arcade-physics;复杂刚体模拟使用Matter.js
  • 状态管理铁律:构造函数中初始化的状态会跨重启保留,必须在init()中重置
  • 回调this绑定:箭头函数自动绑定Scene上下文;普通函数需通过.bind(this)或显式传递context参数
  • 调试关键点:

- 检查控制台Phaser版本是否匹配3.90
- 通过game.scene.dump()查看场景状态机
- Network面板验证资源加载状态

  • Phaser 2迁移注意:原States已更名为Scenes,输入/摄像机/补间系统现在属于场景级私有实例

使用场景

  • 新创建 Phaser 3 游戏项目,需要配置 Game 核心参数并启动第一个场景
  • 实现场景切换逻辑时遇到状态残留或方法选择错误
  • 在 preload 阶段加载图像/音频资源但 create 中无法访问
  • 需要跨场景共享数据如玩家最高分或全局设置

适合人员

  • Phaser 3 初学者:第一次用框架搭建游戏需要理解场景生命周期
  • 独立游戏开发者:需要管理多个游戏场景的状态切换和资源加载
  • 前端工程师:项目依赖 Phaser 3.90 需要正确配置 WebGL 和 Canvas
  • 教学场景讲师:需向学员展示 Phaser 3 标准架构和最佳实践