2

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

在 GitHub 上找到了这个解决方案,它完全符合我的要求:应用程序顶部的透明层,我可以在其中打印调试信息。

cocos2d-debug-layerCCLabelTTF用来显示调试信息。

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

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

我发现它ccLabelTTF的背景不能改变。我无法将背景设置为透明。

我使用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"];

第一行打印正确:“初始化场景”

但此后,它会打印实体块。

标签的字体是 Helvetica,默认情况下可用。这不是问题,因为有些消息显示正确,有些则不正确。

这是创建ccLabelTTFs的代码:

-(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];
}
4

0 回答 0