---
name: phaser_scene_lifecycle.aicomponent
description: Phaser 双场景架构骨架。定义 Preloader → Game 的标准两场景生命周期，Preloader 负责资产预加载，完成后自动切换到 Game 主场景。
triggers: 需要设置 Phaser 项目的场景管理架构或场景切换流程时触发。
---

# Phaser 双场景生命周期（Phaser Dual Scene Lifecycle）

## 说明

标准 Phaser 试玩广告双场景架构：

1. **Preloader 场景**：加载所有资产，显示加载 Loading UI，加载完成后调用 `sdk.start()` 并切换到 Game 场景
2. **Game 场景**：主游戏场景，持有所有游戏对象和逻辑

两个场景分别在 `preloader_scene.aicomponent` 和 `game_scene.aicomponent` 中实现。

## Scaffold

本 skill 为骨架层，不直接贡献文件——具体文件由 `preloader_scene` 和 `game_scene` 两个 skill 贡献。

`src/game/index.ts`（来自 `phaser.aicomponent`）中通过 `scene: [Preloader, Game]` 注册两个场景。

## Imports

- `phaser.aicomponent`（硬依赖）

## Skill Definition

```yaml
tools:
  - read_file
  - write_file
inputs: []
outputs:
  - sceneArchitecture: Preloader → Game two-scene Phaser pattern
```

## Recipe

| 决策 | 原因 |
|------|------|
| **双场景而非单场景** | Preloader 独立负责资产加载，避免主游戏场景在资源就绪前尝试渲染；架构模式明确，可测试各自生命周期 |
| **架构文档 Skill（无代码产出）** | 场景架构是约定（谁先注册、谁负责切换），不是可复用的代码；文档 Skill 让 Agent 理解约束，具体实现由 preloader_scene 和 game_scene 两个 skill 贡献 |
| **Preloader 调用 sdk.start()** | 资产加载完成是广告 SDK 的 ready 信号；集中在 Preloader 处理，避免在主场景中竞态 |

## Adapter

- **Role**: `sceneArchitecture` — Phaser Preloader→Game 双场景架构规范（无代码产出）
- **Provides**: 场景注册约定、切换流程文档
- **Requires**: `phaser.aicomponent`（硬依赖：Phaser.Scene + SceneManager API）
- **Consumed by**: `preloader_scene.aicomponent`（按此约定实现 Preloader）、`game_scene.aicomponent`（按此约定实现 Game）
- **Integration point**: `src/game/index.ts` → `scene: [Preloader, Game]` 注册顺序由本架构约定决定

## 场景注册方式

```typescript
// src/game/index.ts (来自 phaser.aicomponent)
scene: [Preloader, Game]   // Phaser 按顺序启动：先 Preloader，再 Game

// Preloader.ts 加载完成后切换
this.scene.start('Game');
```
