四、这个Atlas4测试出现一个新函数,CCNode* getChildByTag ( int tag ) ;这个函数获取CCLabelBMFont里面的单独字符,从0开始。利用这个函数,我们可以单独设置每一个字符颜色setColor,动作选择runAction等等,例如
CCLabelBMFont *label = CCLabelBMFont::create("abcde", "bitmap.fnt"); label->setPosition( ccp( s.width / 2, s.height / 2) ); addChild(label, 1); ::CCSprite *bChar = (CCSprite*)label->getChildByTag(1); bChar->setColor(ccc3(255, 0, 0));
六、Atlas6这个测试位置,更无聊。
七、AtlasBitmapColor里面有个新的函数,可以更改字符串。
virtual void setString (const char * label) ;
用法类似label->setString("green");
八、AtlasFastBitmap这个类新出现一个宏CCRANDOM_0_1,这个宏返回0-1直接的浮点数。
/** @def CCRANDOM_0_1 returns a random float between 0 and 1 */ #define CCRANDOM_0_1() ((float)rand()/RAND_MAX)九、BitmapFontMultiLine类说明了\n可以换行。
CCLabelBMFont *label3 = CCLabelBMFont::create("Multi line\nRight\nThree lines Three", "fonts/bitmapFontTest3.fnt");
CCSize s = CCDirector::sharedDirector()->getWinSize(); // CCLabelBMFont CCLabelBMFont *label1 = CCLabelBMFont::create("", "fonts/bitmapFontTest3.fnt"); addChild(label1, 0, kTagBitmapAtlas1); label1->setPosition(ccp(s.width/2, s.height-100)); // CCLabelTTF CCLabelTTF* label2 = CCLabelTTF::create("", "Arial", 24); addChild(label2, 0, kTagBitmapAtlas2); label2->setPosition(ccp(s.width/2, s.height/2)); // CCLabelAtlas CCLabelAtlas *label3 = CCLabelAtlas::create("", "fonts/tuffy_bold_italic-charmap.png", 48, 64, ' '); addChild(label3, 0, kTagBitmapAtlas3); label3->setPosition(ccp(s.width/2, 0+100));十一、LabelBMFontHD这个类仅是测试在 Retina Display上的问题。
十二、LabelAtlasHD这个类仅是测试在 Retina Display上的问题。
十三、LabelGlyphDesigner这个类先设计一个灰色的层,然后在上面显示文字。
CCLayerColor *layer = CCLayerColor::create(ccc4(128,128,128,255)); addChild(layer, -10);
class Atlas1 : public AtlasDemo { CCTextureAtlas* m_textureAtlas; public: Atlas1(); ~Atlas1(); virtual std::string title(); virtual std::string subtitle(); virtual void draw(); };
参考资料:
一、Bitmap font generator用法: http://blog.csdn.net/aa4790139/article/details/8113197