0

我很难理解这里发生了什么。我目前有一个继承自 CCNode 的“Header”类。这个 CCNode 类有多个属性,包括 CCSprite 和 CCLabelTTF。在初始化中,我创建这些对象并设置它们的位置。然后,我将这个 Header 类包含在我的场景中,并将其作为子类添加到场景中。但是,标签位置设置不正确。它将我的标签的位置属性设置为 0、0。

这是 Header.h 的代码:

@interface Header : CCNode {
    CCButton *settingsButton_;
    CCButton *crewButton_;
    CCButton *goldButton_;
    CCSprite *divider_;
    CCLabelTTF *rank_;
    CCLabelTTF *userName_;
}

@property (nonatomic, retain) CCButton *settingsButton;
@property (nonatomic, retain) CCButton *crewButton;
@property (nonatomic, retain) CCButton *goldButton;
@property (nonatomic, retain) CCSprite *divider;
@property (nonatomic, retain) CCLabelTTF *rank;
@property (nonatomic, retain) CCLabelTTF *userName;

+ (id)node;
- (id)init;

@end

和 Header.m:

@implementation Header

+(id)node {
    return [[self alloc] init];
}

-(id)init {
    self = [super init];
    if (!self) return(nil);

    NSString *rankString = [[GameManager sharedGameManager] getRank];

    self.rank = [CCLabelTTF labelWithString:rankString fontName:@"Copperplate-Bold" fontSize:16.0];
    self.rank.color = [CCColor blackColor];
    self.rank.positionType = CCPositionTypeNormalized;
    self.rank.position = ccp(0.35, 0.965);

    [self addChild:self.rank];

    return self;
}

@end

现在,当我将此 Header CCNode 添加到我的图层时,位置不会停留在ccp(0.35, 0.965),它只是重置为 0,0。

我在这里缺少什么吗?

4

1 回答 1

0

问题是 CCPositionNormalized。如果你使用它,它不需要实际的像素大小。一旦我评论了这一点并使用了实际的像素大小(例如 ccp(100, 200) ),它就可以正常工作了。谢谢!

于 2014-02-23T23:34:46.427 回答