GameState
GameState 的属性与方法,包括音频管理器、场景预加载与暂停推进
本页面正在建设中
测试功能,可能会有变动
GameState 由玩家组件创建,可以传递给其他主类,例如 liveGame.serialize
公共属性
game
Game- Game 实例
audioManager
游戏的音频缓存与播放管理器
// 抓取并解码一个音源进入音频缓存,但不播放。
void gameState.audioManager.preload(bgm);preload(sound: Sound): Promise<void>- 预热一个音源。自0.17.0起可用。加载失败的音源只会记录一条警告,并改为在首次播放时加载,因此它永远不会 reject。不要用返回的 Promise 为任何东西把关:在用户手势满足浏览器自动播放策略之前,音频上下文一直是锁住的,因此它完全可能一直挂着不结算。详见预加载
公共方法
preloadScene
指定要预热资源的场景,但不挂载它、也不执行它的任何动作
gameState.preloadScene(scene); // 也可以传 Story,将使用它的入口场景自 0.17.0 起,Player 会自动注册故事的入口场景——但仅在既没有预加载场景、也没有已挂载场景时才生效,因此先调用这个方法就能保留你自己的选择。详见预加载
arg: Scene | Story- 要预热的场景,或使用其入口场景的故事。若传入的故事没有入口场景则抛出异常return: this
suspendAdvance
把当前行按住不动。只要还有一个挂起未释放,舞台点击、推进键和跳过键都不起作用。自 0.27.0 起可用
const release = gameState.suspendAdvance();
// ...
release();挂起可嵌套:全部释放之后行才恢复。返回的函数可以安全地重复调用
在 React 组件里请用 useSuspendAdvance,它随组件取得和释放挂起
return: () => void- 释放这次挂起
isAdvanceSuspended
当前是否有东西正按住这一行。自 0.27.0 起可用
return: boolean