2014-02-19 5 views
0

여기서 무슨 일이 벌어지고 있는지 이해하는 데 어려움이 있습니다. 현재 CCNode에서 상속받은 "Header"클래스가 있습니다. 이 CCNode 클래스는 CCSprite 및 CCLabelTTF를 포함하여 여러 속성을가집니다. init에서는 이러한 객체를 만들고 위치를 설정합니다. 그런 다음이 머리글 클래스를 내 장면에 포함시키고 장면으로 자식으로 추가합니다. 그러나 레이블 위치가 올바르게 설정되지 않았습니다. 나는이를 추가 할 때 지금CCNode에서 CCLabelTTF의 위치를 ​​설정하고 CCScene에 추가하십시오. [cocos2d v3]

@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 

:

@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 : 그것은 여기

0이 (가) header.h가에 대한 코드의 0으로 내 레이블의 위치 속성을 설정 머리글 CCNode 내 레이어에 위치가 ccp(0.35, 0.965)에 머 무르지 않고 단지 0,0으로 재설정됩니다.

여기에 누락 된 것이 있습니까?

+0

위치에 큰 값을 입력하십시오. – Guru

+0

iPhone/iPad에서 레이블을 (0.35, 0.965) 픽셀로 표시 할 수 없습니다. 정수 값을 사용하지 않는 이유는 무엇입니까? –

+0

float를 사용할 수는 있지만 (0.35, 0.965) 약 (0,0) ... – Tista81

답변

0

문제는 CCPositionNormalized입니다. 이것을 사용하면 실제 픽셀 크기를 차지하지 않습니다. 일단 내가 그 주석을 달고 실제 픽셀 크기 (예 : ccp (100, 200))를 사용하면 정상적으로 작동합니다. 감사!