Войти
Мобильные платформыФорумОбщее

Вопрос о строках, CClabel в Cocos2D

#0
21:08, 3 авг. 2011

Всем привет.

В примере HelloWorld используется компонент CClabel

CGSize s = CCDirector.sharedDirector().winSize();
CCLabel lbl1 = CCLabel.makeLabel("Hello World!", "DroidSans", 24);
addChild(lbl1, 0);
lbl1.setPosition(CGPoint.make(166, 240));

Позиция для данного компонента задается статически.

Я хочу добавить две надписи(В верхнем левом и правом углах)

CCLabel lbl1 = CCLabel.makeLabel("Label12345: 12345", "DroidSans", 24);
addChild(lbl1, 0);
lbl1.setPosition(CGPoint.make(75, s.height - 20));

CCLabel lbl2 = CCLabel.makeLabel("Label2", "DroidSans", 24);
addChild(lbl2, 0);
lbl2.setPosition(CGPoint.make(75 + lbl1.getContentSize().width + 50, s.height - 20));


Получается черти что: Левая надпись съезжает за уровень экрана..

Cocos2d - Проблема с CClabel | Вопрос о строках, CClabel в Cocos2D - ссылка на скриншот

Может быть можно задать justify или какое-то подобное свойство?(хотя я таких не нашел)..

Спасибо.


#1
9:51, 4 авг. 2011

Кокос координаты объекта берет от центра

Попробуй так:

CCLabel lbl1 = CCLabel.makeLabel("Label12345: 12345", "DroidSans", 24); 
addChild(lbl1, 0); 
lbl1.setPosition(CGPoint.make(5+lbl1.contentSize.width*0.5, s.height - 20));
#2
14:11, 4 авг. 2011

B@rtL™,

Да, это работает, спасибо.
Только я использую

lbl1.getContentSize().width
вместо
lbl1.contentSize.width
Хотя это не сильно и принципиально.

Соответственно для выравнивания по правому боку нужно написать следующее:

float x2 = s.width-lbl2.getContentSize().width/2;
lbl2.setPosition(CGPoint.make(x2, s.height - 20));

#3
15:27, 4 авг. 2011
Только я использую

lbl1.getContentSize().width
вместо
lbl1.contentSize.width

я просто сейчас пишу на сocos2d-iphone ... поэтому так и написал по привычке :)

#4
17:13, 4 авг. 2011

О, теперь всё стало на свои места :)
Я практически везде видел именно такой формат записи.
Спасибо, ещё раз!

Мобильные платформыФорумОбщее

Тема в архиве.