2013-03-14 190 views
1

我查看了它,大部分的信息都在制作一个singleton类。我只想从我的menuscreen.m中传递一个值给我的helloworldlayer.m。什么是简单的方法来做到这一点。将值从一个场景传递到另一个场景

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

    testscene.number = 1; 

    [[CCDirector sharedDirector] replaceScene:testscene]; 
} 

我尝试过的方法之一就是这样的,但是这也不是我的工作。

如何访问场景中的变量并进行更改。

+0

testscene.number = 1;这行是回答你的问题 – 2013-03-14 07:27:13

+0

阅读此:http://www.koboldtouch.com/display/IDCAR/Strategies+for+Accessing+Other+Nodes – LearnCocos2D 2013-03-14 08:17:46

回答

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 2013-03-14 08:10:09

+0

在图层类其成员...访问它通过自我,self.number :) – Guru 2013-03-14 08:11:39

+0

因为当我尝试使用它,它告诉我它的零 – user2121776 2013-03-14 08:16:00

1

为此创建外部变量并按照您的操作进行操作。

相关问题