1

I have a CCScene which already holds my gameLayer and I am trying to add HUD layer on that.But the HUD layer is not getting added in my scene, I can say that because I have set up a CCLabel on HUD layer and when I run my project, I cannot see that label.

Here's what I am doing : In my gameLayer:

+(id) scene
{

   CCScene *scene = [CCScene node];

   GameScreen *layer = [GameScreen node];
   [scene addChild: layer];

    HUDclass * otherLayer = [HUDclass node];
    [scene addChild:otherLayer];

    layer.HC = otherLayer;// HC is reference to my HUD layer in @Interface of gameLayer
    return scene;
}

And then in my HUD layer I have just added a CCLabelTTF in its init method like this :

-(id)init {

    if ((self = [super init])) {

    CCLabelTTF * label = [CCLabelTTF labelWithString:@"IN WEAPON CLASS" fontName:@"Arial"    fontSize:15];
     label.position = ccp(240,160);
     [self addChild:label];

    }

    return  self;
}

But now when I run my project I dont see that label, What am I doing wrong here ..?

Nor the init method in HUD layer is being called.

Any Ideas.. ?

Thanks in advance for your time.

Emmett Butler
  • 5,969
  • 2
  • 29
  • 47
Shailesh
  • 3,072
  • 3
  • 24
  • 33
  • possible duplicate of [HUD layer not being added on my scene](http://stackoverflow.com/questions/11758056/hud-layer-not-being-added-on-my-scene) – James Webster Aug 02 '12 at 13:09

1 Answers1

2

I'm guessing [Hudclass node] isn't calling your class' init method but only the CCNode init method. You can verify this by setting a breakpoint at that line and stepping into the node method.

Two solutions:

  • override +(id)node in your HUDclass
  • create the layer with [[[HUDclass alloc] init] autorelease]
CodeSmile
  • 64,284
  • 20
  • 132
  • 217