2012-08-17 5 views
0

애니메이션이있는 게임이 있습니다.cocos2d 게임 루프 재개

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch=[touches anyObject]; 
    CGPoint locationOfTouch=[self convertTouchToNodeSpace: touch]; 

    CGRect rectOfScreen=CGRectMake(0, 0, screenSize.width, screenSize.height); 

if (CGRectContainsPoint(rectOfScreen, locationOfTouch)) 
{ 
    [[CCDirector sharedDirector] replaceScene:[PauseScene scene]]; 
    [self unschedule:@selector(spawnEnemies:)]; 
    [self unschedule:@selector(checkCollisionOfEnemyWithBullet:)]; 
    [self unschedule:@selector(update:)]; 
    [self unschedule:@selector(isJoystickActivated:)]; 
    [self unschedule:@selector(checkHasGameEnded:)]; 

    [[CCDirector sharedDirector] pause]; 
} 

}

하는 구현하는 방법 : 게임 장면에서 나는 (게임이 일시 정지되기 때문에 사용자가 iOS 장비의 어느 지점에 탭 때, 완벽하게 작동) 내 게임을 일시 중지 아래의 방법을 사용

,398 : 나는 위의 방법을 envoke 방법, 여기에
-(void) continueGame:(id)sender 
{ 
[[CCDirector sharedDirector] resume]; 
[[CCDirector sharedDirector] replaceScene:[GameSceneLayer scene]]; 
//[self resumeSchedulerAndActions]; 
} 

코드입니다 : 나는 게임을 다시 시작하기 위해 다음과 같은 방법을 구현했습니다 CCLayer : 작업을 재개, I'v은 PauseLayer 생성

하지만 계속 게임을 선택하면 게임이 빈 지점에서 시작됩니다. 모든 게임 상태는 모든 게임 캐릭터가 새로운 게임이됩니다. 사용자가 일시 중지 한 지점에서 게임을 재개하려면 어떻게합니까? 고맙습니다!

[self pauseSchedulerAndActions]; //pause 
[self resumeSchedulerAndActions];//resume 

또한 하나 개의 부울 변수를 유지하고, u는 필요할 때마다 확인 :

답변

0

는 일시 중지하고 다시 시작하는 두적인 Cocos2D 기능을 사용할 수 있습니다.

bool mISGamePaused; 
+0

bool 변수 mIsGamePaused를 사용하는 것에 대해 혼란스러워합니다. 이러한 함수 만 사용할 수있는 경우 실제로이 변수가 필요한 이유는 무엇입니까? –

+0

@TarasMurzenkov, 내 게임에서 나는 여러 장애물에 대해 많은 별도의 클래스를 사용했습니다. 그래서이 bool 변수를 사용하면 게임이 일시 중지 된 경우 일부 코드의 실행을 피할 수 있습니다 ... – Guru

+0

몇 가지 코드 예제를 게시 할 수 있습니까? PS - (void) continueGame : (id) 보낸 사람이 [self resumeSchedulerAndActions] 메소드를 사용했지만 게임이 일시 중지 상태에서 재개되지 않았습니다. –