CCLabelBMFont 사용시 주의 점.
CCLabelBMFont *M_MakeLabel(float x, float y, const char *str, int align, float fontSize)
{
float size = fontSize*mg.factor/52.0f;
CCLabelBMFont *label = CCLabelBMFont::create(str, "BDFont.fnt");
label->retain(); // 이 부분을 빼 놓으면 실행시 에러 발생!!
label->setAnchorPoint(CCPointMake(0, 1));
label->setPosition(CCPointMake(x, y));
switch (align) {
case 1:
label->setAnchorPoint(CCPointMake(0.5, 0.5));
label->setAlignment(kCCTextAlignmentCenter);
break;
case 2:
label->setAnchorPoint(CCPointMake(1, 1));
label->setAlignment(kCCTextAlignmentRight);
break;
default:
label->setAnchorPoint(CCPointMake(0, 1));
label->setAlignment(kCCTextAlignmentLeft);
break;
}
label->setScale(size);
label->setString(str);
return label;
}
cocos2d-x 클래스는 retain()과 release()로 메모리를 관리한다.
특히 클래스를 메소드 내에서 선언하여 전역적으로 사용할 경우 반드시 retain()를 해줘야만 한다.
아니라면 release()이후 메모리 상에 문제가 생길 수 있다.
'cocos2d-x' 카테고리의 다른 글
iOS 6 업그레이드 할때 주의점! (1) | 2013.01.18 |
---|---|
[cocos2dx] 특이 에러 make warning: NUL character seen; rest of line ignored (1) | 2012.07.10 |
[cocos2dx] SDK 설치 설정 (0) | 2012.07.08 |
[cocos2dx] 터치 & 멀티 터치 (0) | 2012.07.06 |
[cocos2dx] 화면 해상도 고정시키기 (2) | 2012.07.05 |