大佬教程收集整理的这篇文章主要介绍了cocos2d-x 利用CCLabelTTF制作文字描边与阴影效果的实现方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
方法一:@H_262_5@
cocos2d-x 已经为我们封装好了,方法就在类CCLabelTTF里面。@H_262_5@
void enableShadow(const cCSize &shadowOffset,float shadowOpacity,float shadowBlur,bool mustupdateTexture = truE); /** disable shadow rendering */ void disableShadow(bool mustupdateTexture = truE); /** enable or disable stroke */ void enableStroke(const ccColor3B &strokeColor,float strokeSize,bool mustupdateTexture = truE); /** disable stroke */ void disableStroke(bool mustupdateTexture = truE);
在方法一达不到效果的情况下就只能自己实现了。@H_262_5@
.h文件@H_262_5@
#ifndef __HelLOWORLD_SCENE_H__ #define __HelLOWORLD_SCENE_H__ #include "cocos2d.h" USING_NS_Cc; using namespace std; class HelloWorld : public CCLayer { public: virtual bool init(); static CCScene* scene(); CREATE_FUNC(HelloWorld); //给文字添加描边 CCLabelTTF* textAddStroke(const char* String,const char* fontName,float fontSize,const ccColor3B &color3,float lineWidth); //添加阴影 CCLabelTTF* textAddShadow(const char* String,float shadowSize,float shadowOpacity); //既添加描边又添加阴影 CCLabelTTF* textAddOutlineAndShadow(const char* String,float lineWidth,float shadowOpacity); }; #endif // __HelLOWORLD_SCENE_H__
#include "HelloWorldScene.h" #include "SimpleAudioENGIne.h" using namespace cocos2d; using namespace CocosDenshion; CCScene* HelloWorld::scene() { CCScene *scene = CCScene::create(); HelloWorld *layer = HelloWorld::create(); scene->addChild(layer); return scene; } bool HelloWorld::init() { if ( !CCLayer::init() ) { return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); //创建个背景 CCLayerColor* whiteLayer = CCLayerColor::create(ccc4(0,205,255),size.width,size.height); this->addChild(whiteLayer); //创建描边 CCLabelTTF* outline = textAddStroke("描边 Stroke","Arial",40,ccWHITE,1); outline->setPosition(ccp(size.width*0.5,size.height*0.7)); this->addChild(outlinE); //创建阴影 CCLabelTTF* shadow = textAddShadow("阴影 Shadow",2,200); shadow->setPosition(ccp(size.width*0.5,size.height*0.5)); this->addChild(shadow); //创建描边加阴影 CCLabelTTF* outlineshadow = textAddOutlineAndShadow("描边加阴影 Outlineshadow",1,4,200); outlineshadow->setPosition(ccp(size.width*0.5,size.height*0.3)); this->addChild(outlineshadow); return true; } /* 制作文字描边效果是很简单的,我们写好一段文字之后,也就是创建出一个CCLabelTTF,称之为正文CCLabelTTF。然后再创建出4个CCLabelTTF,颜色为黑色,大小同正文CCLabelTTF相同, 称之为描边CCLabelTTF。说到这大家可能已经明白了,没错,就是把4个描边CCLabelTTF放于正文CCLabelTTF的下面,分别于左右上下与正文CCLabelTTF错开,这样描边效果就实现啦。。 *String 文本 *fontName 文本字体类型 *fontSize 文本大小 *color3 文本颜色 *lineWidth 所描边的宽度 */ CCLabelTTF* HelloWorld::textAddStroke(const char* String,float lineWidth) { //正文CCLabelTTF CCLabelTTF* center = CCLabelTTF::create(String,fontName,fontSizE); center->setColor(color3); //描边CCLabelTTF 上 CCLabelTTF* up = CCLabelTTF::create(String,fontSizE); up->setColor(ccBLACK); up->setPosition(ccp(center->getContentSize().width*0.5,center->getContentSize().height*0.5+lineWidth)); center->addChild(up,-1); //描边CCLabelTTF 下 CCLabelTTF* down = CCLabelTTF::create(String,fontSizE); down->setColor(ccBLACK); down->setPosition(ccp(center->getContentSize().width*0.5,center->getContentSize().height*0.5-lineWidth)); center->addChild(down,-1); //描边CCLabelTTF 左 CCLabelTTF* left = CCLabelTTF::create(String,fontSizE); left->setPosition(ccp(center->getContentSize().width*0.5-lineWidth,center->getContentSize().height*0.5)); left->setColor(ccBLACK); center->addChild(left,-1); //描边CCLabelTTF 右 CCLabelTTF* right = CCLabelTTF::create(String,fontSizE); right->setColor(ccBLACK); right->setPosition(ccp(center->getContentSize().width*0.5+lineWidth,center->getContentSize().height*0.5)); center->addChild(right,-1); return center; } /* 给文字添加阴影,一看就懂的。。。 *String 文本 *fontName 文本字体类型 *fontSize 文本大小 *color3 文本颜色 *shadowSize 阴影大小 *shadowOpacity 阴影透明度 */ CCLabelTTF* HelloWorld::textAddShadow(const char* String,float shadowOpacity) { CCLabelTTF* shadow = CCLabelTTF::create(String,fontSizE); shadow->setColor(ccBLACK); shadow->setOpacity(shadowOpacity); CCLabelTTF* center = CCLabelTTF::create(String,fontSizE); center->setColor(color3); center->setPosition(ccp(shadow->getContentSize().width*0.5-shadowSize,shadow->getContentSize().height*0.5+shadowSizE)); shadow->addChild(center); return shadow; } //既添加描边又添加阴影 CCLabelTTF* HelloWorld::textAddOutlineAndShadow(const char* String,float shadowOpacity) { CCLabelTTF* center = textAddStroke(String,fontSize,color3,lineWidth); CCLabelTTF* shadow = CCLabelTTF::create(String,fontSizE); shadow->setPosition(ccp(center->getContentSize().width*0.5+shadowSize,center->getContentSize().height*0.5-shadowSizE)); shadow->setColor(ccBLACK); shadow->setOpacity(shadowOpacity); center->addChild(shadow,-1); return center; }
效果如图:@H_262_5@
@H_262_5@
以上是大佬教程为你收集整理的cocos2d-x 利用CCLabelTTF制作文字描边与阴影效果的实现方法全部内容,希望文章能够帮你解决cocos2d-x 利用CCLabelTTF制作文字描边与阴影效果的实现方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。