2014-02-06 5 views
23
@property (SK_NONATOMIC_IOSONLY, getter = isPaused) BOOL paused; 

내 프로젝트에이 코드 줄을 추가하면 전체 게임을 어떻게 일시 중지하겠습니까? 예를 들어스프라이트 키트 장면 일시 중지

은 : 당신이 볼 수 있듯이

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
for (UITouch *touch in touches) 
{ 
    SKSpriteNode *pause = (SKSpriteNode*)[self childNodeWithName:@"pause"]; 
    CGPoint location = [touch locationInNode:self]; 
    // NSLog(@"** TOUCH LOCATION ** \nx: %f/y: %f", location.x, location.y); 

    if([pause containsPoint:location]) 
    { 
     NSLog(@"PAUSE GAME HERE SOMEHOW"); 
    } 
} 

}

, 나는 버튼을 설정했습니다. 내가 그것을 선택할 때, 전체 장면을 어떻게 멈출까요? 그런 다음 누군가가 이력서 버튼을 누르면 다시 시작합니다.

OK 그래서 나는

- (void)applicationDidBecomeActive:(UIApplication *)application{ 

    SKView *view = (SKView *)self.window.rootViewController.view; 
    view.paused = NO; 

내가 그것을 타입 SKView 만들어 여기를 제외하고

self.scene.view.paused = YES; 

내 애플 대리자에서 문제가 전화를 몇 가지 조언을 얻었다 , 실제로 SKScene 일 때. 어쨌든이 문제를 해결하려면? 모든 코드를 다시 타이핑하여 모든 장면을 뷰로 만들 것을 제안합니까?

+0

에 사용 장면 당신은 장면 및 뷰에 대한 혼란 것으로 보인다. sk skene을 skview에서 재생합니다. SKScene 또는 SKView 중 하나를 일시 중지하면 게임이 일시 중지되지만 안드레이 (Andrey)가 제안한대로 가장 좋은 방법입니다. – ZeMoon

답변

58

사용 SKViewpaused 특성 :

스위프트 :

scene.view?.paused = true 

목표 C :

self.scene.view.paused = YES; 

이 모든 행동과 물리 시뮬레이션을 중지합니다.

2

는 일시 중지 기능

self.scene?.view?.paused = true 
+0

빠른 속도로만 작동합니다. –

관련 문제