我来自意大利,过了一段时间我正在创建一个实现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开发被卡住......
答案 0 :(得分:0)
解决
非常愚蠢地我已经解决了
[[CCDirector sharedDirector] replaceScene: [venezia node]];
而不是
[[CCDirector sharedDirector] replaceScene: [venezia scene]];
所以它没有加载任何其他层,而是加载在该节点中的那个;)