感謝點評與關注,歡迎轉載與分享。
勤奮努力,持之以恒。
下面封裝方法效能不是最優僅供參考 更好方法請參考:http://blog.csdn.net/song_hui_xiang/article/details/42921537
//圖片命名規則:number_0.png fileName則為 number_ numSpace:圖片間距 leftOrRight:1靠左對齊 2靠右對齊 3置中對齊CCSprite* Utilities::numberChangeToImage(int number,float numSpace,const char* fileName,int leftOrRightOrCenter){ CCSprite* base_sp; string num_str = Convert2String(number); int num_str_count = num_str.length(); if (leftOrRightOrCenter == 1) { for (int i=0; i<num_str_count; i++) { string num_single = num_str.substr(i,1); string each_num_str = fileName+num_single+".png"; CCSprite* sp_number = CCSprite::createWithSpriteFrameName(each_num_str.c_str()); sp_number->setAnchorPoint(ccp(0, 0.5)); if (i==0) { base_sp = sp_number; }else{ sp_number->setPosition(ccp((base_sp->getContentSize().width+numSpace)*i, base_sp->getContentSize().height*0.5)); base_sp->addChild(sp_number); } } }else if(leftOrRightOrCenter == 2){ for (int i=num_str_count-1; i>-1; i--) { string num_single = num_str.substr(i,1); string each_num_str = fileName+num_single+".png"; CCSprite* sp_number = CCSprite::createWithSpriteFrameName(each_num_str.c_str()); sp_number->setAnchorPoint(ccp(1, 0.5)); if (i==num_str_count-1) { base_sp = sp_number; }else{ sp_number->setPosition(ccp(-(base_sp->getContentSize().width+numSpace)*(num_str_count-2-i), base_sp->getContentSize().height*0.5)); base_sp->addChild(sp_number); } } }else if(leftOrRightOrCenter == 3){ int centerIndex; if (num_str_count%2 == 0) { centerIndex = num_str_count/2; }else{ centerIndex = (num_str_count+1)/2; } string centerFileName = fileName+num_str.substr(centerIndex-1,1)+".png"; base_sp = CCSprite::createWithSpriteFrameName(centerFileName.c_str()); if (num_str_count%2 == 0) { base_sp->setAnchorPoint(ccp(1, 0.5)); } int endIndex = 1; for (int i=centerIndex; i<num_str_count; i++) { string num_single = num_str.substr(i,1); string each_num_str = fileName+num_single+".png"; CCSprite* sp_number = CCSprite::createWithSpriteFrameName(each_num_str.c_str()); sp_number->setAnchorPoint(ccp(0, 0.5)); sp_number->setPosition(ccp((base_sp->getContentSize().width+numSpace)*endIndex, base_sp->getContentSize().height*0.5)); base_sp->addChild(sp_number); endIndex++; } int startIndex = 1; for (int i=centerIndex-2; i>-1; i--) { string num_single = num_str.substr(i,1); string each_num_str = fileName+num_single+".png"; CCSprite* sp_number = CCSprite::createWithSpriteFrameName(each_num_str.c_str()); sp_number->setAnchorPoint(ccp(0, 0.5)); sp_number->setPosition(ccp(-(base_sp->getContentSize().width+numSpace)*startIndex, base_sp->getContentSize().height*0.5)); base_sp->addChild(sp_number); startIndex++; } } return base_sp;}