2011-02-16 3 views
0


나는 주변에있는 게임에 문제가있어 그걸 알아낼 수 없습니다.시뮬레이터에서는 작동 하나 장치에서는 작동하지 않습니까?

"지도"라는 클래스에 CCMenu가있어 어떤 게임 레벨을 선택할 지 사용자가 선택할 수 있습니다. 각 menuItem에 태그를 설정하고 모든 menuItem의 선택기를 "goToScene"라는 메서드로 설정합니다. 이 방법에서는 어느 레벨을 선택했는지 파악하고 sharedDirector를 사용하여 맵 장면을 적절한 레벨 레이어로 대체합니다. 나는 아래 코드를 열거 할 것이다.

코드는 시뮬레이터에서 정상적으로 작동하지만 내 기기 (iPhone 4)에서는 menuItem 중 하나를 클릭하면 멈 춥니 다. 나는 전에 "시뮬레이터에 관한 작업을했지만 장치에는 없다"라는 문제를 겪었고 내 이미지 중 하나에서 대문자 오류로 밝혀졌다 .... 그래서 나는 모든 리소스를 점검했고 좋은 것이다. 나는 또한 프로젝트를 청소했지만 도움도받지 못했다.

미리 감사드립니다. 여기 스콧

 level= [CCSprite spriteWithFile:@"level.png"]; 
    CCMenuItemImage *one =[CCMenuItemImage itemFromNormalImage:@"one.png" selectedImage:@"one.png" target:self selector:@selector(goToScene:)]; 
    CCMenuItemImage *two= [CCMenuItemImage itemFromNormalImage:@"two.png" selectedImage:@"two.png" target:self selector:@selector(goToScene:)]; 
    CCMenuItemImage *three= [CCMenuItemImage itemFromNormalImage:@"three.png" selectedImage:@"three.png" target:self selector:@selector(goToScene:)]; 

    one.tag=1; 
    two.tag=2; 
    three.tag=3; 

    CCMenu *menu = [CCMenu menuWithItems: one,two,three,nil]; 
    [menu alignItemsHorizontally]; 

    level.position = ccp(screenSize.width/2,screenSize.height-50); 
    [self addChild:level]; 
    [self addChild:menu]; 





    [self schedule: @selector(tick:)]; 
} 
return self; 

}

그리고

가 호출되는 방법이다. 그것까지 얼어 곳

-(void)goToScene:(id)sender{ 

CCMenuItem *temp = (CCMenuItem *)sender; 
if (temp.tag==1) { 
    GameScene *scene = [[GameScene alloc] init]; 
    Level1 *sc = [[Level1 alloc] init]; 
    [scene addChild:sc]; 
    [[CCDirector sharedDirector]replaceScene:scene]; 
} 
if (temp.tag==2) { 
    GameScene *scene = [[GameScene alloc]init]; 
    Level2 *sc = [[Level2 alloc]init]; 
    [scene addChild:sc]; 
    [[CCDirector sharedDirector]replaceScene:scene]; 

} 
if (temp.tag==3) { 

    GameScene *scene = [[GameScene alloc]init]; 
    Level3 *sc = [[Level3 alloc]init]; 
    [scene addChild:sc]; 
    [[CCDirector sharedDirector]replaceScene:scene]; 
} 

} 좋아

+0

누를 때 Ctrl + Shift + R 무엇을 말하는가 ?? – xuanweng

답변

1

모든 iOS 장치는 파일 이름이 대소 문자를 구분해야하지만 시뮬레이터는 동일한 대문자가 아닌 경우 찾을 수 있습니다. 따라서 항상 코드에서 파일 이름을 두 번 확인하십시오.

+0

감사 KDaker. 그것이 바로 그 것이 었습니다. – scottD

0

... 나는 그것을 알아 냈다, 그래서 나는 그것을 다른 사람이 도움이 될 수 있습니다 경우에 게시 거라고 생각 ...입니다. 내 GameScene 클래스에서 HUDLayer를 init 메서드의 화면 상단에로드하고 HUDLayer 클래스에서 일시 중지 단추를 사용합니다. 제 코드에서는 파일의 대문자 사용을 망쳤습니다. 그래서이 문제에 대한 일반적인 용의자로 밝혀졌습니다 ... 내 자원 중 하나가 잘못 입력되었고 시뮬레이터가 장치를 사용하지 않는 동안 슬라이드를 허용합니다 ..

관련 문제