createGameState
创建游戏状态。游戏状态会自动持久化,存档时保存,加载时恢复。
基本用法
import { createGameState } from "@core/state";
const state = createGameState("myState", {
score: 0,
life: 3,
});异步初始化
const state = createGameState("asyncState", async () => {
const data = await fetchInitialData();
return { value: data };
});状态操作
get()
获取当前状态值(需要 await)。
const current = await state.get();
console.log(current.score);set()
响应式更新状态值(需要 await)。
// 部分更新
await state.set({ score: 100 });
// 函数式更新
await state.set((prev) => ({
...prev,
score: prev.score + 10,
}));在场景中使用
const entry = createScene("entry", async () => {
// 获取状态
const current = await state.get();
Game.narrate`当前分数: ${current.score}`;
// 响应式更新状态
await state.set((prev) => ({
...prev,
score: prev.score + 10,
}));
});存档恢复
状态会自动保存和恢复:
- 保存时记录场景入口时的状态快照
- 恢复时自动还原状态值
- React 中通过
setReactState()修改的状态也会被保存
Last updated on