缓存资源的模式

时间:2014-06-21 07:09:10

标签: javascript design-patterns

我有一个带图像的游戏 - 我想在游戏开始之前默默地缓存它们。因此,我可以有两种情况:

  1. 代码已加载
  2. 缓存启动
  3. 缓存已完成
  4. 用户启动游戏
  5. 运行游戏
  6. OR

    1. 代码已加载
    2. 缓存启动
    3. 用户启动游戏 - >显示进度
    4. 缓存已完成
    5. 运行游戏
    6. 对于第二种情况,我可以向缓存函数传递一个回调来运行游戏。但由于第一种情况可能发生,我不能这样做,因为我也必须等待用户。

      所以现在我正在考虑使用全局(ouch)变量作为回调onGameStart。默认情况下它会显示进度,但缓存回调会做两件事 - 重置onGameStart以实际启动游戏,并检查游戏是否已启动,如果是,则会立即继续。

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

1 个答案:

答案 0 :(得分:1)

当ResourceManager获取所有资源时获取通知的ResourceObserver怎么样?然后你的游戏保持状态,如果用户在通知之前开始游戏,使用进度通知来更新屏幕,否则,只需跳到游戏。

TL; DR:Observer + State Machine。