cocos2d-x实现亮片效果

cocos2d-x实现亮片效果,第1张

概述参考学长的项目,记录一下刀光效果的实现。 bool KongJianLayer::init(){ //调用父类的初始化 if ( !Layer::init() ) { return false; } Vec2 origin=Director::getInstance()->getVisibleOrigin(); Size visible

参考学长的项目,记录一下刀光效果的实现。

bool KongJianLayer::init(){	//调用父类的初始化    if ( !Layer::init() )    {        return false;    }    Vec2 origin=Director::getInstance()->getVisibleOrigin();    Size visibleSize=Director::getInstance()->getVisibleSize();    Sprite *Title = Sprite::create("gameTitle2.png");	//初始化游戏标题    ClipPingNode *cliper=ClipPingNode::create(Title);	Sprite* stencil = Title;									//设置剪裁模板为自	Sprite* spark = Sprite::create("TitleBlend.png");//初始化亮片	spark->setposition(-Title->getContentSize().wIDth,0);						//设置亮片的位置	BlendFunc cbl = {GL_DST_color,GL_ONE};								//定义混合类型	spark->setBlendFunc(cbl);									//设置亮片混合	cliper->setAlphaThreshold(0.5f);								//设置剪裁的透明度为0.5	cliper->setStencil(stencil);									//设置剪裁模板	cliper->addChild(spark);									//添加亮片	this->addChild(cliper,10);									//添加剪裁到布景中	cliper->setposition(Point(origin.x+visibleSize.wIDth/2,origin.y+visibleSize.height-200));	Moveto* moveto = Moveto::create(1.5f,Point(Title->getContentSize().wIDth,0));<span >			</span>//移动动画	Place* moveBack = Place::create(Point(-Title->getContentSize().wIDth,0));	<span >		</span>//瞬时回到某点	Sequence* seq = Sequence::create(moveto,moveBack,DelayTime::create(1.0f),nullptr);<span >		</span>//顺序动作	RepeatForever* action = RepeatForever::create(seq);						//重复执行的动作	spark->runAction(action);									//亮片执行动作a    return true;}


此处涉及到剪裁模板概念,以及OpenGL里边的混合模式,下面列出OpenGL中常用的混合模式以及概念。



常量

RGB混合因子

Alpha混合因子

GL_ZERO

(0,0)

0

GL_ONE

(1,1,1)

1

GL_SRC_color

(Rs,Rs,Rs)

As

GL_ONE_MINUS_SRC_color

(1,1)- (Rs,Rs)

1-As

GL_DST_color

(Rd,Rd,Rd)

Ad

GL_ONE_MINUS_DST_color

(1,1)- (Rd,Rd)

1-Ad

GL_SRC_Alpha

(As,As,As)

As

GL_ONE_MINUS_SRC_Alpha

(1,1)- (As,As)

1- As

GL_DST_Alpha

(Ad,Ad,Ad)

Ad

GL_ONE_MINUS_DST_Alpha

(1,1)- (Ad,Ad)

1-Ad

GL_SRC_Alpha_SATURATE

(f,f,f):f=min(As,1-Ad)

1



注:s:源颜色。d:目标颜色。

总结

以上是内存溢出为你收集整理的cocos2d-x实现亮片效果全部内容,希望文章能够帮你解决cocos2d-x实现亮片效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存