我需要在我的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];
}