Skip to Content
Welcome to Vyno! 🍷
文档API参考StatecreateGameState

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