完全按照教程,但HUD不显示

时间:2014-05-13 08:16:37

标签: ios cocos2d-iphone show hud

我来自意大利,过了一段时间我正在创建一个实现HUD的新Cocos2D项目。 奇怪的是,HUD曾经在我之前的项目中工作过,但即使是在新项目中移动文件,也没有显示任何内容,只有主要层... 我试图完全遵循Bob Ueland的教程(http://bobueland.com/cocos2d/2011/robin-hud/),一步一步,无所事事......

然而这些是我的文件,我试图删除东西以使其尽可能简单,但标签为“arriderci”的图层总是不可见的......

可能有一个我无法看到的愚蠢错误,也许它与app delegate有关...

venezia.h

#import "cocos2d.h"
#import "HudLayer.h"

@interface venezia : CCLayer

{
 HudLayer *hud;
 CCSprite *sfondo2;
 CCLabelTTF *txt;  

}

@property (nonatomic, retain) HudLayer *hud;

+(CCScene *) scene;

@end

venezia.m

#import "venezia.h"

@implementation venezia
@synthesize hud;

+(CCScene *) scene
{
    CCScene *scene = [CCScene node];
    venezia *layer = [venezia node];
    [scene addChild: layer];

    //add another layer to the scene

    HudLayer *anotherLayer = [HudLayer node];
    [scene addChild: anotherLayer z:14];
    layer.hud = anotherLayer;


    return scene;
}    


- (id) init
{
    self = [super init];
    if (self != nil)
    {
        sfondo2 = [CCSprite spriteWithFile:@"sfondo.png"];
        [self addChild: sfondo2 z:1];
        sfondo2.position = ccp (240, 160);

        //TESTO        
        txt = [CCLabelTTF labelWithString:@"CIAO" dimensions: CGSizeMake(400,200) alignment: UITextAlignmentCenter fontName:@"Trebuchet MS" fontSize: 16];
        txt.position = ccp (110,110);
        [self addChild: txt z:12];
        txt.visible = YES;             
    }
    return self;
}

- (void) dealloc
{
    [super dealloc];
}
@end

HudLayer.h

#import "cocos2d.h"

@interface HudLayer : CCLayerColor

{
    CCLabelTTF *txt2;  
}

@end

HudLayer.m

#import "HudLayer.h"

@implementation HudLayer

-(id) init

{
    if( (self=[super initWithColor:ccc4(25, 225, 0, 128)])) {


        txt2 = [CCLabelTTF labelWithString:@"ARRIVEDERCI" dimensions: CGSizeMake(400,200) alignment: UITextAlignmentCenter fontName:@"Trebuchet MS" fontSize: 16];
        txt2.position = ccp (110,0);
        [self addChild: txt2 z:12];
        txt2.visible = YES;         
    }

    return self;

}


- (void) dealloc

{
     [super dealloc];
}

@end

提前谢谢你,我真的需要这个继续我的项目,它只是一个部分,但没有这个de开发被卡住......

1 个答案:

答案 0 :(得分:0)

解决

非常愚蠢地我已经解决了

[[CCDirector sharedDirector] replaceScene: [venezia node]];

而不是

[[CCDirector sharedDirector] replaceScene: [venezia scene]];

所以它没有加载任何其他层,而是加载在该节点中的那个;)