cocos2d: выравнивание текста LabelAtlas?

Есть ли способ в cocos2d 0.7.1 указать выравнивание текста в LabelAtlas?

Я использую LabelAtlas для оценки (отображаемой в правом верхнем углу), но когда оценка превышает 10, вторая цифра обрезается.

Я могу реализовать код для обнаружения этого и перемещения LabelAtlas, но есть ли способ заставить cocos2d сделать это за меня?

Спасибо.


person John    schedule 24.04.2009    source источник


Ответы (4)


Хотя это работает, у вас будет та же проблема, если счет превысит 1000.

Вы можете использовать свойство anchorPosition, чтобы изменить место определения позиции. Например; в моей игре я помещаю scoreLabel в нижний правый угол экрана. Чтобы убедиться, что он всегда виден, я установил anchorPosition в нижний правый угол этикетки, а затем установил его position там, где я хочу, чтобы нижний правый угол этикетки был.

[scoreLabel setAnchorPoint:ccp(1, 0)];
[scoreLabel setPosition:ccp(480, 0)];

Если вы хотите, чтобы он располагался в верхнем правом углу экрана, вы можете аналогичным образом использовать следующий код, чтобы определить привязку как верхний правый угол.

[scoreLabel setAnchorPoint:ccp(1, 1)];
[scoreLabel setPosition:ccp(480, 320)];
person James Johnson    schedule 01.08.2009
comment
О верно! С тех пор я использовал setAnchorPoint в другом проекте. Спасибо. - person John; 06.08.2009

Я просто использую это, чтобы центрировать мой LabelAtlas:

[scoreLabel setAnchorPoint:ccp(.5, .5)];

Когда оценка изменяется, метка остается выровненной по центру без обновления положения.

person Biosopher    schedule 22.10.2009

FWIW, я закончил тем, что написал код для этого.

    if(delegate.score > 99) {
        [scoreLabel setPosition:ccp(374, 265)];
    } else if(delegate.score > 9) {
        [scoreLabel setPosition:ccp(410, 265)];
    }
person John    schedule 02.07.2009