我需要在我的 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,默认情况下可用。这不是问题,因为有些消息显示正确,有些则不正确。
这是创建ccLabelTTF
s的代码:
-(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];
}