From 4d4889f8251f235f8bbdceee74332f95f961dad3 Mon Sep 17 00:00:00 2001 From: hypercross Date: Fri, 3 Apr 2026 16:19:33 +0800 Subject: [PATCH] docs: fix doc api --- docs/boardgame-core-guide.md | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/docs/boardgame-core-guide.md b/docs/boardgame-core-guide.md index bfd81e7..179f9c8 100644 --- a/docs/boardgame-core-guide.md +++ b/docs/boardgame-core-guide.md @@ -624,19 +624,36 @@ roll(dice, rng); // 使用 RNG 掷骰子 ```ts import { createGameContextFromModule } from 'boardgame-core'; -import { ReactiveScene } from 'boardgame-phaser'; +import { ReactiveScene, bindRegion, bindSignal } from 'boardgame-phaser'; import * as ticTacToe from './tic-tac-toe'; -class TicTacToeScene extends ReactiveScene { +type GameState = ReturnType; + +class TicTacToeScene extends ReactiveScene { protected onStateReady() { // 初始化 Phaser 对象 } - + protected setupBindings() { - // 绑定信号到 Phaser 对象 - bindSignal(this, () => this.gameContext.state.value.winner, (winner) => { + // 绑定简单信号值 + bindSignal(this.gameContext.state, state => state.winner, winner => { if (winner) this.showWinMessage(winner); }); + + // 绑定区域(响应 parts 数组变化) + bindRegion( + this.gameContext.state, + state => state.parts, + this.gameContext.state.value.board, + { + cellSize: { x: 100, y: 100 }, + offset: { x: 50, y: 50 }, + factory: (part, pos) => { + return this.add.text(pos.x, pos.y, part.player); + }, + }, + this.boardContainer, + ); } } @@ -644,3 +661,10 @@ class TicTacToeScene extends ReactiveScene const gameContext = createGameContextFromModule(ticTacToe); const scene = new TicTacToeScene(gameContext); ``` + +**bindRegion 参数说明:** +- `state` — MutableSignal 游戏状态 +- `state => state.parts` — 获取 parts 数组的 getter(effect 会追踪此依赖) +- `region` — Region 对象 +- `options` — 配置项(cellSize, offset, factory) +- `container` — Phaser 容器