2012-07-31 2 views
0

게임의 일시 중지 화면 메뉴에서 작업 중입니다. 일시 중지 화면을 표시 한 후 사용자가 화면을 터치하여 일시 중지 화면을 숨기고 게임을 다시 시작하게합니다. 이것은 시뮬레이터에서 완벽하게 작동하지만 실제 장치에서 테스트 할 때는 작동하지 않습니다. 기기가 일시 중지 메뉴에 특별히 터치 한 경우에는 응답하지 않는 것으로 보입니다. 게임의 다른 모든 부분은 시뮬레이터와 장치 모두에서 잘 작동합니다. 시뮬레이터에서는 작동하지만 장치에서는 작동하지 않는 것이 이상합니다. 당신이 터치 이벤트가있는 당신은 모든 CCLayer이 작업을 수행해야- (BOOL) ccTouchBegan은 시뮬레이터에서 응답하지만 장치에서는 응답하지 않습니다.

- (id)init { 
if ((self = [super init])) { 

    CGSize windowSize = [[CCDirector sharedDirector] winSize]; 
    //windowSize.height = 768.0; 
    //windowSize.width = 1024.0; 

    CCSprite *whiteScreen = [CCSprite spriteWithFile:@"OutOfTime.png"]; 
    whiteScreen.position = ccp(windowSize.width/2, windowSize.height/2); 
    [self addChild:whiteScreen]; 

    CCLabelTTF *touchToDismiss = [CCLabelTTF labelWithString:@"Touch screen to continue"  fontName:@"Marker Felt" fontSize:30]; 
    touchToDismiss.color = ccBLACK; 

    touchToDismiss.position = ccp(windowSize.width/2, 20); 
    [self addChild:touchToDismiss]; 
    } 

    return self; 
} 

- (void)onEnter { 
    [super onEnter]; 
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO]; 
} 

- (void)gameOverWithScore:(NSInteger)score { 
    CGSize windowSize = [[CCDirector sharedDirector] winSize]; 
    //windowSize.height = 768.0; 
    //windowSize.width = 1024.0; 

    CCLabelTTF *touchToDismiss = [CCLabelTTF labelWithString:@"Game Over" fontName:@"Marker Felt" fontSize:75]; 
    touchToDismiss.color = ccBLACK; 
    touchToDismiss.position = ccp(windowSize.width/2, windowSize.height/2 + 40); 
    [self addChild:touchToDismiss]; 

    NSString *scoreString = [NSString stringWithFormat:@"Final Score: %d", score]; 
    CCLabelTTF *scoreLabel = [CCLabelTTF labelWithString:scoreString fontName:@"Marker Felt" fontSize:60]; 
    scoreLabel.color = ccBLACK; 
    scoreLabel.position = ccp(windowSize.width/2, (windowSize.height/2) - 40); 
    [self addChild:scoreLabel]; 
} 

- (void)setMessage:(NSString *)message { 

} 

- (void)dealloc { 
    [super dealloc]; 
} 

- (BOOL)ccTouchBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSLog(@"haha"); 
    return YES; 
} 

답변

0

당신은 아마 당신의 초기화

self.isTouchEnabled = YES; 

에 다음 줄을 추가해야합니다 : 이것은 내가 일시 정지 화면이 코드입니다.

EDIT : ccTouchBegan이 로그 만 인쇄하는 것으로 나타났습니다. 이 로그는 XCode의 디버그 창에서 쉽게 볼 수 있지만 장치에서는 사용자가 볼 수 없습니다. 다른 작업을 시도해보십시오.

+0

Thanks Kurama! 사실 내가 뭘 잘못하고 있었는지 알았어. 내가 사용하고 있었다 [[CCDirector sharedDirector] pause]; 내 게임을 일시 중지합니다. 흥미롭게도 시뮬레이터는 여전히 터치에 반응했지만 디바이스는 그렇지 않았습니다! – bakwarte

+0

좋은 것을 알고 :) – KuramaYoko

관련 문제