# <%= appName %>

这是一个基于浏览器原生 JavaScript ESM 的 Phaser 2D 游戏项目，由扣子编程 CLI 创建。

Phaser 3.90.0 与 Phaser Bridge 从 CDN 加载；项目不依赖 npm、Vite 或 TypeScript。请用静态 HTTP 服务访问，直接打开 `index.html` 不支持 ESM 模块与素材加载。

## 快速开始

```bash
coze-dev dev
coze-dev build
coze-dev start
```

`build` 没有编译步骤；开发与生产预览均由 Python `http.server` 提供静态文件服务。

## 文件结构

```text
├── assets/                     # 图片、序列帧、视频和音频
├── debug-runtime/              # 调试 Flow
├── src/assets.js               # 素材 key 与路径
├── src/main.js                 # 游戏入口
├── src/phaser.js               # Phaser 全局对象的 ESM 包装
├── src/scene/BootScene.js      # 启动与全量加载
└── src/utils/asset-loader.js   # 批量和单素材加载
```

- 素材按类型放在 `assets/`，并登记到 `src/assets.js` 对应的分类表。
- 序列帧只登记文件夹；Loader 从 `manifest.json` 读取帧数和帧率。
- `BootScene` 加载游戏素材；运行时可用 `loadAsset(this, key)` 单独加载。
- 所有本地模块都使用原生 ESM 的显式 `.js` 后缀。

## 可视化编辑标识

用 `markEditable` 标记可在编辑器中调整的对象；第三个参数可选，仅用于编辑器展示名称：

```js
markEditable('ui.start-button', button, { label: '开始按钮' });
```
