在test示例下面,有一个关于此功能的代码,实现的效果如下:
通过拉动可旋转的按钮,从而改变所代表的值,这个效果的确是很棒的,但,和我的需求有一些差别,先贴上我实现的效果吧
先看先第一张图,头像环绕的进度条从0开始,直到最后显示效果如第二张图所示,整个过程采用定时器来完成,和示例中的通过手拖动旋转按钮表面上不同(头像没有旋转),其实,原理是一样的,那张头像不过是放到上面的,头像下面仍有一个旋转的图片,只是我们看不到而已,来看下代码吧
声明文件:
- #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->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;
- poten->setValue(tmp);
- if(tmp>=1)
- //CCDirector::sharedDirector()->getScheduler()->unscheduleSelector(SEL_SCHEDULE(&Potentiometer::valueChange),this);
- unschedule(schedule_selector(Potentiometer::valueChange));
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|