缓存资源的模式

Pattern for caching resources

本文关键字:模式 资源 缓存      更新时间:2023-09-26

我有一个带有图像的游戏——我想在游戏开始前安静地缓存它们。因此,我可以有两个场景:

  1. 代码已加载
  2. 缓存开始
  3. 缓存完成
  4. 用户开始游戏
  5. 运行游戏

  1. 代码已加载
  2. 缓存开始
  3. 用户开始游戏-->显示进度
  4. 缓存完成
  5. 运行游戏

对于第二种情况,我可以传递给缓存函数一个回调来运行游戏。但是由于第一种情况可能发生,所以我不能这样做,因为我还必须等待用户。

所以现在我正在考虑拥有全局(哎唷)变量,这将是一个回调onGameStart。默认情况下,它将显示进度,但缓存回调将做两件事-重置onGameStart实际启动游戏,并检查游戏是否已启动,如果是,它将立即继续。

我错过什么了吗?这是正确的模式吗?

如果ResourceObserver在ResourceManager获取了所有资源后收到通知呢?然后你的游戏保持状态,如果用户在通知前开始游戏,使用进度通知来更新屏幕,否则,直接跳转到游戏。

DR:观察者+状态机。