2013-03-14 10 views
1

나는 이것을 조사해 보았고 대부분의 정보는 싱글 톤 클래스를 만드는 것에 관한 것이다. 내 menuscreen.m에서 내 helloworldlayer.m에 하나의 가치를 전달하고 싶습니다. 이렇게하는 쉬운 방법은 무엇입니까?하나의 장면에서 다른 장면으로 값 전달

- (void) changeScenePlay 
{ 
    CCScene *testscene = [HelloWorldLayer scene]; 

    testscene.number = 1; 

    [[CCDirector sharedDirector] replaceScene:testscene]; 
} 

내가 시도한 방법 중 하나는 이와 비슷하지만 나에게도 효과가 없습니다.

장면의 변수에 액세스하고 변경하려면 어떻게해야합니까?

+0

testscene.number = 1; 이 라인은 질문 UR –

+0

대답이 답변을 읽고 있습니다 : http://www.koboldtouch.com/display/IDCAR/Strategies+for+Accessing+Other+Nodes – LearnCocos2D

답변

1

HelloWorld 레이어 클래스에서 변수 멤버를 사용합니다. 대신 현장의

@interface HelloWorldLayer: CCLayer 
    { 
     int number; 
    } 
    @property(nonautomatic, assign) int number; 
    @end 

    @implementation HelloWorldLayer 
    @synthesize number; 

    +(CCScene *) sceneWithNumber:(int)inNumber 
    { 
     CCScene *scene = [CCScene node]; 

     HelloWorldLayer *layer = [[[HelloWorldLayer alloc] initWithId:inNumber] autorelease]; 

     [scene addChild: layer z:Z_SCENE tag:TAG_SCENE]; 

     return scene; 
    } 

-(id) initWithId:(int)inNumber 
{ 
    if((self=[super init])) { 
     self.number= inNumber; 
    } 
    return self; 
} 

    @end 

전화 sceneWithNumber

- (void) changeScenePlay 
{ 
    CCScene *testscene = [HelloWorldLayer sceneWithNumber:1]; 
    [[CCDirector sharedDirector] replaceScene:testscene]; 
} 
+0

그래, 내가 좀,하지만 어떻게 얻을 layer.number 얻을 내 helloworld 레이어 – user2121776

+0

레이어 클래스에서 그것의 멤버를 사용하십시오 ... self, self.number를 통해 액세스하십시오 : – Guru

+0

왜냐하면 내가 그것을 사용하려고 할 때, 그것의 제로를 말하고 있기 때문입니다 – user2121776

1

extern 변수를 만들고 수행 중입니다.

관련 문제