나는 많은 자산을로드하는로드 장면이있는 cocos2d
게임을 가지고 있습니다. 게임은 스플래시 화면으로 시작한 다음로드 장면을 시작합니다. 로드 장면은 배경을로드하여 시작하므로 애셋로드 중에로드 장면 배경을 볼 수 있습니다. loadingbackground.pvr.ccz
블랭킹 아웃하지 않고 cocos2d에서로드 장면 배경을로드하는 방법은 무엇입니까?
다른 장치에서 다르게 작동하는 것 같다 :
내가 파일 경로 CCSprite::spriteWithFile:
를 호출하고 전달하여 로딩 장면 배경을로드
- (3GS) 시뮬레이터를, 나는 로딩 장면을 볼 예상대로
- iphone retina 시뮬레이터에서로드하는 장면이 보이지 않습니다 (아직 애셋이 많지 않으므로 빠르게 발생할 수 있습니다). 그러면 메인 메뉴 장면으로 직접 이동합니다.
- ipad 3 장치에서 스플래시 화면이 나타나고 검은 색 화면이 0.5 초가 지나면 주 메뉴 장면이 나타납니다.
iPad 3에 나타나는 검은 색 화면을 피하기 위해 할 수있는 일이 있는지 확인하고 싶습니다.이 문제는 로딩 배경을로드하는 데 걸리는 시간 때문에 발생합니다.
나는 다음과 같은 최적화를 시도했다 (대부분 @에 따라 스테 펜의 blog post on memory optimization) :
- 는 크기를 감소 그 자체로 pvr.ccz의 spritesheet에 적재 배경 (원래 2.3 MB의 RGB8 된 png 파일), 이전 1.8MB로
- 사용 직후에 텍스처에서 이미지를 제거했습니다.
iPad 3에서 여전히 검은 색 화면이 표시됩니다.
업데이트 : 문제 발견 - OnEnter
을 재정의하고 [[CCDirector sharedDirector]replaceScene]
을 호출하고 백그라운드 스레드에서 동일한 코드를 호출하는 코드가있었습니다. OnEnter 과부하를 제거하고 깜박임없이 작동했습니다.
감사합니다.
애셋을 백그라운드에서로드 했으므로 답변으로 표시했습니다. 또한 질문에 대한 업데이트에서 설명한 다른 버그가 수정되었습니다. 감사! – Anand