2014-04-01 4 views
3

현재 게임에 문제가있어 해결책이 있는지 묻고 싶습니다. 기본적으로 내 게임은 다른 응용 프로그램처럼 빠르게 문제없이 주 메뉴에 완벽하게로드되지만 MainGameScene으로 이동하는 재생 단추를 누르면 약 3-4 초가 걸려 장면이 나타납니다. 처음 재생 버튼을 누를 때만 발생합니다. 그래서 당신이 죽으면, 메인 메뉴로 돌아가서 다시 플레이하면, 즉시로드됩니다. 그래서 내 질문은 왜 MainGameScene을로드하는 데 몇 초가 걸리지? 코딩 할 때 놓친 것이 있습니까? 미리로드되지 않았습니까? - (void) loadTextures {Sprite Kit 느린 로딩 시간

방금 ​​시도했지만 장면이 로딩 화면에서 기본 메뉴 장면으로 전환되지 않습니다. 어떤 아이디어?

NSMutableArray *imageArray = [[NSMutableArray alloc] initWithObjects:@"obstacle.png","background.png","Ghost.png", nil]; 
[SKTexture preloadTextures:imageArray withCompletionHandler:^ 
{ 
    SKTransition *reveal = [SKTransition fadeWithDuration:0.75]; 
    MGLCreateMainMenuScene *scene = [[MGLCreateMainMenuScene alloc] initWithSize:self.view.bounds.size]; 
    scene.scaleMode = SKSceneScaleModeAspectFill; 
    [self.view presentScene:scene transition:reveal]; 
}]; 

은}

+1

게임이 처음로드 될 때 모든 것이 처음으로 초기화됩니다. 후속 시도에서 이러한 자산은 메모리에서 즉시 사용할 수 있으므로로드하는 데 시간이 필요하지 않습니다. 게임이로드되는 동안 활동 표시기가있는 로더를 올려 놓는 것이 좋습니다. – ZeMoon

+0

또한 게임에서 애셋을 어떻게 미리로드하고 있습니까? – ZeMoon

+2

텍스처 로딩이 로딩 시간의 99 % 일 확률은 99 %입니다. 텍스처 맵을 사용하지 않으면 텍스처 맵을 사용하여 속도를 높일 수 있습니다. – LearnCocos2D

답변

0

미리로드에 대한 귀하의 코드가 올바르지 않습니다. 대신 다음을 시도하십시오 :

NSMutableArray *imageArray = [[NSMutableArray alloc] init]; 

[imageArray addObject: [SKTexture textureWithImageNamed:@"obstacle.png"]]; 
[imageArray addObject: [SKTexture textureWithImageNamed:@"background.png"]]; 
[imageArray addObject: [SKTexture textureWithImageNamed:@"Ghost.png"]]; 

[SKTexture preloadTextures:imageArray withCompletionHandler:^ 
{ 
    SKTransition *reveal = [SKTransition fadeWithDuration:0.75]; 
    MGLCreateMainMenuScene *scene = [[MGLCreateMainMenuScene alloc] initWithSize:self.view.bounds.size]; 
    scene.scaleMode = SKSceneScaleModeAspectFill; 
    [self.view presentScene:scene transition:reveal]; 
}]; 
관련 문제