gpt4 book ai didi

iphone - Cocos2D标签不可见,黑屏

转载 作者:行者123 更新时间:2023-11-28 22:43:58 26 4
gpt4 key购买 nike

我已经用我命名为 Label 的类实现了 CCLabelProtocol 和 CRGBAProtocol:

#import <cocos2d.h>

@interface Label : CCNode <CCLabelProtocol, CCRGBAProtocol>

@property (nonatomic, copy, readwrite) NSString* string;
@property (nonatomic, readwrite) ccColor3B color;
@property (nonatomic, readwrite) GLubyte opacity;

- (id) initWithString: (NSString*) aString;

@end

因为好用我也做了一个initWithString方法:

#import "Label.h"

@implementation Label

@synthesize string,opacity,color;

- (id) initWithString: (NSString*) aString
{
if(self=[super init])
{
string= aString;
color.r=255;
color.g=0;
color.b=0;
opacity= 10;
}
return self;
}

- (ccColor3B) color
{
return color;
}

@end

然后在 HelloWorldLayer 的初始化方法中我这样做:

    Label* label= [[Label alloc]initWithString: @"Start"];
CCMenuItemLabel* item= [CCMenuItemLabel itemWithLabel: label block:^(id sender)
{
NSLog(@"Label Clicked");
}];
CCMenu* menu= [CCMenu menuWithItems: item, nil];
[self addChild: menu];

我使用的是普通的 cocos2d 模板,所以它在 CCLayer 类中。
屏幕是黑色的,我没有得到我想要的标签。

最佳答案

那是因为你只是采用了一些协议(protocol),而是从 CCNode 继承下来的。 CCNode 是一个非渲染(不可见)节点。

如果你想要一个标签,从 CCLabelTTF 继承并省略协议(protocol),因为 CCLabelTTF 已经实现了它们。

但是,除非您想更改标签的行为或呈现方式,否则创建 CCLabelTTF 子类就有些过分了。如果您只需要更改文本和颜色,请使用 CCLabelTTF initializers及其颜色属性。

Label* label = [CCLabelTTF labelWithString:@"Start" fontName:@"Arial" fontSize:24];
label.color = ccRED;
CCMenuItemLabel* item = [CCMenuItemLabel itemWithLabel: label block:^(id sender)
{
NSLog(@"Label Clicked");
}];
CCMenu* menu = [CCMenu menuWithItems:item, nil];
[self addChild:menu];

关于iphone - Cocos2D标签不可见,黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com