cocos2d-x 3.x LabelAtlas類(圖片文字)



1. 使用實例如下:

	/*
	** 參數1:選擇圖片中的哪個文字,
	** 參數2:圖片(使用texturePacker製作的文字集合),
	** 參數3、4:單個文字的寬、高
	** 參數5:起始的文字
	** 注意:程序內部按照ASCII碼的順序進行偏移來截取字符的,沒有相應字符,也要預留位置    */
	LabelAtlas* lbSprite = LabelAtlas::create("6", "4_text.png", 30, 48, '1');
	lbSprite->setAnchorPoint(Vec2(0, 0));
	lbSprite->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2));
	this->addChild(lbSprite);


---------------------------------------

2. 使用texturePacker拼接LabelAtlas小圖片(用在LabelAtlas中的原圖片)

【參考http://www.cnblogs.com/meteoric_cry/p/3594185.html


需要勾選的選項:

1. Layout欄:Algorithm項選用Basic (默認的是MaxRects)-> Sort By [Name];

2. Layout欄:設置默認的Border padding、Shape Padding爲0;

3. Layout欄:Trim mode項選擇None;

4. Geometry欄:Size constraints項選Any size;

5. 選擇輸出(Output)選項中的,Image format,爲RGBA4444,並選擇Dithering爲 抖動 + 通道(FloydSteinberg + Alpha);

*圖片的名稱進行控制(它是字符串比較,所以10.png 在 2.png之前,統一使用二位02.png、10.png就可以實現真正的排序)

-------------------------------------------------------------------------------

現在使用的版本是cocos2d-x 3.6,官方示例中已經推薦使用Label類進行創建了(Label中的charmap)

貼點代碼參考一下:

	pTime = time;

	/*Label_char_map測試*/
	label = Label::createWithCharMap("fonts/count.png", 33, 50, '0');
	label->setAnchorPoint(Vec2(0,0));
	label->setPosition(Vec2(0, 0));
	label->setOpacity(200);
	this->addChild(label);

	schedule(schedule_selector(GameTimer::update));

void GameTimer::update(float delta)
{
	pTime -= delta;
	char* mtime = new char[10];
	//此處只是顯示分鐘數和秒數  自己可以定義輸出時間格式
	sprintf(mtime, "%02d : %02d", (int)pTime / 60, (int)pTime % 60);
	//sprintf(mtime, "%2.2f Test", pTime);
	//sprintf(mtime, "%06d", (int)pTime);
	label->setString(mtime);
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章