0

ここで何が起こっているのか理解できません。現在、CCNode から継承する「ヘッダー」クラスがあります。この CCNode クラスには、CCSprite や CCLabelTTF を含む複数のプロパティがあります。init で、これらのオブジェクトを作成し、それらの位置を設定します。次に、この 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

このヘッダー CCNode をレイヤーに追加すると、位置が に留まらず、ccp(0.35, 0.965)0,0 にリセットされます。

私がここに欠けているものはありますか?

4

1 に答える 1

0

問題は CCPositionNormalized でした。それを使用すると、実際のピクセルサイズはかかりません。それをコメントアウトして実際のピクセルサイズ(たとえばccp(100、200))を使用すると、正常に機能しました。ありがとう!

于 2014-02-23T23:34:46.427 に答える