2014-06-21 1 views
0

이미지가있는 게임이 있습니다. 게임을 시작하기 전에 자동으로 캐시하고 싶습니다. 따라서 나는 두 가지 시나리오가 있습니다 : 코드가로드캐싱 리소스 패턴

  1. 캐싱 시작
  2. 캐싱은
  3. 사용자가
  4. 게임을 실행하는 게임을 시작 완료

또는

  1. 코드는
  2. 캐싱은
  3. 사용자가 게임 시작 시작로드 -> 진행이 표시됩니다
  4. 는 두 번째 경우를 들어 게임

을 실행 완료 캐싱, 나는 캐싱에 전달할 수 게임을 실행하기위한 콜백 함수. 하지만 첫 번째 경우가 발생할 수 있기 때문에 나는 사용자를 기다려야하므로이 작업을 수행 할 수 없습니다.

이제 콜백 onGameStart이 될 global (ouch) 변수에 대해 생각하고 있습니다. 기본적으로 진행 상태를 표시하지만 콜백 캐시는 두 가지 작업을 수행합니다. 즉, onGameStart을 실제로 게임을 시작하도록 재설정하고 게임이 시작되었는지 확인합니다. 게임이 시작 되었다면 즉시 진행됩니다.

내가 뭔가를 놓쳤습니까? 올바른 패턴입니까?

+0

Nitpicking : 캐싱하지 않습니다. –

+0

@DavidEhrmann, 프리 페칭? – greenoldman

+0

그냥 리소스를로드 중입니다. 캐싱은 후속로드에서 리소스가 다시 필요할 때 유용합니다. – Bart

답변

1

ResourceManager가 모든 리소스를 가져 왔을 때 알림을받는 ResourceObserver는 어떻습니까? 그런 다음 게임은 상태를 유지하고 사용자가 알림 이전에 게임을 시작하면 진행 상황 알림을 사용하여 화면을 업데이트하거나 그렇지 않으면 게임으로 건너 뜁니다.

TL; DR : 옵저버 + 상태 머신.