2014-06-21 17 views
0

我有一个游戏与图像 - 我想在游戏开始之前默默缓存它们。因此,我可以有两种情况:缓存资源模式

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

OR

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

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

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

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

+0

Nitpicking:这不是缓存。 –

+0

@DavidEhrmann,预取? – greenoldman

+0

它只是加载资源。当您在随后的加载中再次需要资源时,缓存将发挥作用。 – Bart

回答

1

那么,那些获得当ResourceManager中已经取出所有的资源通知ResourceObserver?然后你的游戏保持状态,并且如果用户在通知之前开始游戏,则使用进度通知来更新屏幕,否则,跳到游戏。

TL; DR:观察+状态机。