我查了一下,大部分信息都是关于制作单身课程。我只想从menucreen.m向我的helloworldlayer.m传递一个值。这样做的简单方法是什么。
- (void) changeScenePlay
{
CCScene *testscene = [HelloWorldLayer scene];
testscene.number = 1;
[[CCDirector sharedDirector] replaceScene:testscene];
}
我尝试过的方法之一就是这样,但这对我来说也不起作用。
如何访问场景中的变量并进行更改。
答案 0 :(得分:1)
为此创建外部变量并按照您的方式执行。
答案 1 :(得分: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];
}