Cocos2D LabelTTF显示实心矩形

时间:2013-08-26 13:51:13

标签: iphone objective-c cocos2d-iphone

我需要在我的iOS应用程序中实现调试层,以帮助从测试人员那里获得反馈。

在GitHub上找到了this solution,它完全符合我的要求:应用程序顶部的透明层,我可以打印调试信息。

cocos2d-debug-layer使用CCLabelTTF来显示调试消息。

我已成功将此API插入到我的代码中,它几乎按预期工作。 唯一的问题是某些消息显示为实心矩形,而有些消息显示正确。

我试图改变ccLabelTTF的颜色,它有效果,但它也改变了文字和背景颜色。如果我不改变颜色(保留默认值),它会打印一个白色矩形。

我发现ccLabelTTF的背景为cannot be changed。我无法将背景设置为透明。

我像这样使用CocosDebugLayer

gamescene.m中初始化:

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

    //add debug layer
    CocosDebugLayer *debugLayer = [CocosDebugLayer node];
    [scene addChild:debugLayer z:10000];

    [[NSNotificationCenter defaultCenter] postNotificationName:@"LogMessage" object:@"Init scene"];

    return scene;
}

在同一.m个文件中的几个地方发送日志消息:

[[NSNotificationCenter defaultCenter] postNotificationName:@"LogMessage" object:@"Other log message"];

第一行右侧打印:“Init scene”

但此后,它打印出固体块。

Label的字体是Helvetica,默认情况下可用。 这不是问题,因为有些消息看起来不对。

这是创建ccLabelTTF的代码:

-(void)logMessage:(NSNotification*)notification {
    NSString *message = [notification object];
    CCLabelTTF *logMsg = [CCLabelTTF labelWithString:message fontName:@"Helvetica" fontSize:12];
    [logMsg setAnchorPoint:CGPointZero];
    [self addChild:logMsg];
    [logMessages addObject:logMsg];
    [logMsg release];
    [self updateLog];
}

0 个答案:

没有答案