cocos2d-x特效之CCControlPotentiometer

cocos2d-x特效之CCControlPotentiometer,第1张

概述在test示例下面,有一个关于此功能的代码,实现的效果如下: 通过拉动可旋转的按钮,从而改变所代表的值,这个效果的确是很棒的,但,和我的需求有一些差别,先贴上我实现的效果吧                                先看先第一张图,头像环绕的进度条从0开始,直到最后显示效果如第二张图所示,整个过程采用定时器来完成,和示例中的通过手拖动旋转按钮表面上不同(头像没有旋转),其实,原

在test示例下面,有一个关于此功能的代码,实现的效果如下:


通过拉动可旋转的按钮,从而改变所代表的值,这个效果的确是很棒的,但,和我的需求有一些差别,先贴上我实现的效果吧


先看先第一张图,头像环绕的进度条从0开始,直到最后显示效果如第二张图所示,整个过程采用定时器来完成,和示例中的通过手拖动旋转按钮表面上不同(头像没有旋转),其实,原理是一样的,那张头像不过是放到上面的,头像下面仍有一个旋转的图片,只是我们看不到而已,来看下代码吧

声明文件:

[cpp] view plain copy #ifndef__loading__Potentiometer__ #define__loading__Potentiometer__ #include<iostream> #include"cocos-ext.h" #include"cocos2d.h" USING_NS_CC; classPotentiometer:publiccocos2d::extension::CCControlPotentiometer { public: boolinit(); staticCCScene*scene(); CREATE_FUNC(Potentiometer); voIDvalueChange(CCObject*pSender,cocos2d::extension::CCControlEventevent); CCControlPotentiometer*poten; }; #endif 声明文件比较简单,定义了一个对象以及一个回调函数。

定义部分:

copy #include"Potentiometer.h" boolPotentiometer::init() { if(!CCControlPotentiometer::init()) returnfalse; } CCSizesize=CCDirector::sharedDirector()->getWinSize(); CCSprite*bg=CCSprite::create("fullbg.png"); this->addChild(bg); bg->setposition(ccp(size.wIDth/2,size.height/2));//参数为:整个背景框,头像周围的进度条,以及旋转按钮 poten=CCControlPotentiometer::create("turn_bg.png","turn_timer.png","switch-thumb.png"); this->addChild(poten,1); CCSprite*head=CCSprite::create("default_head_pic.png");//添加头像,使其遮挡旋转按钮 this->addChild(head,108); List-style:decimal-leading-zero outsIDe; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> head->setposition(ccp(size.wIDth/2,size.wIDth/2)); poten->setposition(ccp(size.wIDth/2,size.wIDth/2)); //poten->setMaximumValue(1.0f);//设置可旋转的最大值,默认为1 //poten->setMinimumValue(0.0f);//设置可旋转的最小值,默认为0 //poten->setValue(0.1f); schedule(schedule_selector(Potentiometer::valueChange),1);//添加回调事件,和下面屏蔽的一行效果相同,每隔一秒调用一次指定函数 //CCDirector::sharedDirector()->getScheduler()->scheduleSelector(SEL_SCHEDulE(&Potentiometer::valueChange),this,1,false); true; } CCScene*Potentiometer::scene() CCScene*scene=CCScene::create(); Potentiometer*layer=Potentiometer::create(); scene->addChild(layer); returnscene; voIDPotentiometer::valueChange(CCObject*pSender,cocos2d::extension::CCControlEventevent) floattmp=poten->getValue()+0.1f;//获得当前值(浮点型)并加0.1 poten->setValue(tmp); if(tmp>=1)//如果值达到最大,则停止定时器 //CCDirector::sharedDirector()->getScheduler()->unscheduleSelector(SEL_SCHEDulE(&Potentiometer::valueChange),this); unschedule(schedule_selector(Potentiometer::valueChange));//效果和上面一行相同 } 总结

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

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存