mcpField
P
phaser-2d-game

phaser-2d-game

github.com/openai开发7.6k51 次安装3 周前更新
代码仓库

关于 phaser-2d-game

这项技能为使用 Phaser、TypeScript 和 Vite 开发浏览器 2D 游戏提供架构指导,适合游戏开发者将玩法规则与渲染分离,并集成 DOM 菜单和 HUD。

主要功能

  1. 01划分 Phaser 场景与游戏系统
  2. 02管理确定性的玩法状态
  3. 03使用 DOM 构建 HUD 和菜单
  4. 04指导精灵动画与摄像机设计
  5. 05通过清单组织稳定的资源键

适用场景

  1. 01搭建回合制战术游戏
  2. 02开发俯视角探索游戏
  3. 03制作横版动作平台游戏

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openai/plugins --skill phaser-2d-game

安装后在 Claude Code 中输入/phaser-2d-game确认已加载。

附带文件agents/openai.yaml

详细介绍

Phaser 2D 游戏

概述

在此插件的主执行路径中使用此技能。Phaser 是此处 2D 浏览器游戏的默认技术栈,因为它能很好地处理渲染、计时、精灵、摄像机和场景编排,同时不会强迫你将游戏规则写进框架。

首选技术栈:

  • Phaser
  • TypeScript
  • Vite
  • 叠加在游戏画布上的基于 DOM 的 HUD 或菜单

架构

  1. 将游戏状态保存在 Phaser 场景之外。
    • 系统负责规则、回合顺序、移动、战斗、物品栏、目标和进度。
    • Phaser 场景将系统状态适配为精灵、摄像机移动、动画播放和特效。
  2. 让场景保持精简。
    • 启动和资源预加载
    • 菜单或外壳场景
    • 游戏场景
    • 可选的覆盖层或调试场景
  3. 让面向渲染器的对象可丢弃。
    • 精灵容器、发射器、补间动画和摄像机架是视图状态,不是事实来源。
  4. 在整个游戏代码中,优先使用稳定的资源清单键,而不是直接引用文件路径。

实现指南

  • 只设置一个集成边界,由场景读取模拟状态并将输入操作发送回系统。
  • 优先采用确定性的系统更新,而不是在场景内直接修改状态。
  • 当文本、状态信息密度或响应式布局很重要时,将 HUD 和菜单视为 DOM 元素。
  • 动画状态应从游戏状态推导,而不是依赖临时设置的精灵标记。

擅长处理的 2D 类型

  • 回合制网格和战术游戏
  • 俯视角探索
  • 横版动作平台游戏
  • 带精灵动画的角色动作战斗
  • 轻量级经营或卡组驱动的战斗场景

摄像机和呈现

  • 尽早确定摄像机模式:固定、跟随、房间式或战术平移。
  • 将摄像机逻辑与游戏规则分开。
  • 谨慎使用屏幕震动、受击停顿和视差效果。特效应提升可读性,而不是遮挡画面。

UI 集成

  • 使用 DOM 覆盖层实现 HUD、命令菜单、设置和剧情面板。
  • 让画布负责呈现世界、战斗可读性和动态效果。
  • 除非项目明确需要在画布内呈现,否则不要为了方便就在 Phaser 中塞入密集文本或复杂的设置 UI。

资源组织

  • characters/
  • environment/
  • ui/
  • fx/
  • audio/
  • data/

让资源清单键易于理解且保持稳定。

默认目录结构

具体的模块划分请参见 ../../references/phaser-architecture.md。

反模式

  • 在没有系统边界的情况下,将游戏规则写进 update() 循环
  • 通过可变的全局对象在场景间传递状态
  • 仅仅因为方便,就在游戏画布中渲染 HUD 文本
  • 到处嵌入资源路径,而不使用资源清单层
  • 在游戏 UI 中过度套用通用的 React 仪表盘模式

参考

  • 通用架构:../web-game-foundations/SKILL.md
  • 前端方向:../game-ui-frontend/SKILL.md
  • 精灵工作流:../sprite-pipeline/SKILL.md
  • Phaser 结构:../../references/phaser-architecture.md

评论

支持 Markdown