将值从一个场景传递到另一个场景
我查看了它,大部分的信息都在制作一个singleton类。我只想从我的menuscreen.m中传递一个值给我的helloworldlayer.m。什么是简单的方法来做到这一点。将值从一个场景传递到另一个场景
- (void) changeScenePlay
{
CCScene *testscene = [HelloWorldLayer scene];
testscene.number = 1;
[[CCDirector sharedDirector] replaceScene:testscene];
}
我尝试过的方法之一就是这样的,但是这也不是我的工作。
如何访问场景中的变量并进行更改。
在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];
}
好吧我得到它的工作有点,但我怎么得到layer.number并使用它在我的helloworld图层 – user2121776 2013-03-14 08:10:09
在图层类其成员...访问它通过自我,self.number :) – Guru 2013-03-14 08:11:39
因为当我尝试使用它,它告诉我它的零 – user2121776 2013-03-14 08:16:00
为此创建外部变量并按照您的操作进行操作。
testscene.number = 1;这行是回答你的问题 – 2013-03-14 07:27:13
阅读此:http://www.koboldtouch.com/display/IDCAR/Strategies+for+Accessing+Other+Nodes – LearnCocos2D 2013-03-14 08:17:46