2014-10-08 3 views
0

У меня есть игровой магазин, в котором игроки могут приобретать предметы. У меня есть CCLabelTTF, который выводит цену предмета и CCSprite рядом с ним, который является изображением монеты (валюты). Поскольку цена предметов изменяется по мере того, как пользователь получает больше предметов, текст меток начинает перекрывать монету CCSprite, которая находится рядом с меткой. Я пытаюсь сделать так, чтобы монета CCSprite позиционировалась в зависимости от положения этикеток. Есть ли лучший способ сделать это, чем добавить CCSprite в качестве ребенка в CCLabelTTF? Например, содержащий CCSprite в CCLabelTTF?«Объединение» CCSprite в CCLabelTTF

Сейчас у меня есть это:

coinIcon = [CCSprite spriteWithImageNamed:@"coin.png"]; 
[coinIcon setScale:0.3]; 
priceLabel.string = [NSString stringWithFormat:@"%.Lf", price]; 
[priceLabel addChild:coinIcon]; 

Я также пытался setPositionInPoints, но всякий раз, когда я устанавливаю положение coin больше не появился на экране. Это основная проблема, с которой я пользуюсь этим методом. Он будет работать нормально, не устанавливая позицию, но мне нужна монета слева от priceLabel. И когда я пытаюсь установить позицию и запустить приложение, оно не появляется на экране. Есть идеи?

ответ

0

Используйте CCNode в качестве контейнера, например, так:

// CCSprite and CCLabelTTF are by default anchored (.5,.5) 
// so make label same height as coin and it will line dead-center 
// to the coin's vertical apex 

float offsetInPoints = 8.f; 
float labelWidthInPoints = 80.f; 
CCNode* priceNode = [CCNode node]; 
coinIcon = [CCSprite spriteWithImageNamed:@"coin.png"]; 
[coinIcon setScale:0.3]; 
priceLabel.string = [NSString stringWithFormat:@"%.Lf", price]; 
priceLabel.horizontalAlignment=CCTextAlignmentLeft; 
priceLabel.dimensions=CGSizeMake(labelWidthInPoints,coinIcon.contentSizeInPoints.height); 
[priceNode addChild:coinIcon]; 
[priceNode addChild:priceLabel]; 
priceLabel.positionInPoints = ccpAdd(coinIcon.positionInPoints, 
    ccp(coinIcon.contentSizeInPoints.width+offsetInPoints,coinIcon.position.y)); 

что поместит ценник на постоянной offsetInPoints справа от монеты, любой ценой заканчивается быть.

не тестировали, закодированы из памяти

+0

Thankyou @YvesLeBorg для одной и той же высоте на CCLabelTTF наконечник для выравнивания –

Смежные вопросы