2011-12-25 31 views
2

我面对的东西看起来很直截了当:我想添加一个图层到我的场景中,但不知何故,程序根本不显示图层!哪里不对 ?向场景添加图层不起作用

HelloWorldLayer.m

+(CCScene *) scene 
{ 

    // 'scene' is an autorelease object. 
    CCScene *scene = [CCScene node]; 

    // 'layer' is an autorelease object. 
    HelloWorldLayer *layer = [HelloWorldLayer node]; 
    PlayingField *layer2 = [PlayingField node]; 
    // add layer as a child to scene 
    [scene addChild:layer2]; 
    [scene addChild: layer]; 


    // return the scene 
    return scene; 
} 

PlayingField.h导入并从CCLayer继承。

-(id) init{ 

    if ((self = [super init])){ 
     NSLog(@"entering init of PlayingField layer"); 

     //adding a bunch of Sprites 
     } 
    return self; 
} 
+0

是否有任何可见的元素到您的PlayingField?你的HelloWorldLayer是透明的吗? – 2011-12-25 20:47:09

回答

1

只有一件事你需要检查,否则代码是好的。

如果你有,类似的东西在你的appdidfinishinglaunch方法,

[CCDirector sharedDirector] runwithScene:[HellowordLayer node]]; 

与更换,

[CCDirector sharedDirector] runwithScene:[HellowordLayer scene]]; 
+0

哦是的,它工作!真棒!你能解释为什么吗? – 2011-12-26 22:09:47

+0

[HellowordLayer节点]仅返回Helloworld图层。而[Helloworldlayer scene]将会返回场景,并添加“helloworld图层”和“otherlayer”! :) – max9xs 2011-12-27 04:14:28

+0

哦,好吧,现在我明白非常感谢你:) – 2011-12-27 12:29:03

0

你应该尝试: [场景的addChild:二层Z:2]。 [场景addChild:图层z:1];

或 [scene addChild:layer2];

或 [scene addChild:layer]; [场景addChild:layer2];