cocos2d-x特效之CCControlPotentiometer
来源:互联网 发布:sql 格式化 java代码 编辑:程序博客网 时间:2024/06/06 01:12
在test示例下面,有一个关于此功能的代码,实现的效果如下:
通过拉动可旋转的按钮,从而改变所代表的值,这个效果的确是很棒的,但,和我的需求有一些差别,先贴上我实现的效果吧
先看先第一张图,头像环绕的进度条从0开始,直到最后显示效果如第二张图所示,整个过程采用定时器来完成,和示例中的通过手拖动旋转按钮表面上不同(头像没有旋转),其实,原理是一样的,那张头像不过是放到上面的,头像下面仍有一个旋转的图片,只是我们看不到而已,来看下代码吧
声明文件:
#ifndef __loading__Potentiometer__#define __loading__Potentiometer__#include <iostream>#include "cocos-ext.h"#include "cocos2d.h"USING_NS_CC;class Potentiometer :public cocos2d::extension::CCControlPotentiometer{public: bool init(); static CCScene *scene(); CREATE_FUNC(Potentiometer); void valueChange(CCObject* pSender, cocos2d::extension::CCControlEvent event ); CCControlPotentiometer *poten;};#endif声明文件比较简单,定义了一个对象以及一个回调函数。
定义部分:
#include "Potentiometer.h"#include "cocos2d.h"bool Potentiometer::init(){ if(!CCControlPotentiometer::init()) { return false; } CCSize size=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,1); 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); return true;}CCScene *Potentiometer::scene(){ CCScene *scene=CCScene::create(); Potentiometer *layer=Potentiometer::create(); scene->addChild(layer); return scene;}void Potentiometer::valueChange(CCObject *pSender, cocos2d::extension::CCControlEvent event){ float tmp=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
- cocos2d-x特效之CCControlPotentiometer
- Cocos2d-x CCControlPotentiometer之圆形音量按钮及特效
- Cocos2D-x游戏开发之五:CCControlPotentiometer and CCControlSlider
- cocos2d-x CCControlPotentiometer 圆形音量按钮
- cocos2d-x 特效
- cocos2d-x网格特效
- Cocos2d-x 特效
- cocos2d-x网格特效
- cocos2d-x 特效集合
- cocos2d-x 粒子特效
- Cocos2d-X研究之3.0 场景切换特效汇总
- Cocos2d-X lua 学习笔记之划屏拖尾特效
- 9秒学院Cocos2d-X学习之动作特效介绍
- cocos2d-x 流星划过特效
- cocos2d-x 22种特效
- cocos2d-x 动画特效集合
- asp.net以字符流的形式下载文件
- python 程序穩定性閒談-續集
- Raspberrypi安装使用开发简要说明
- oracle存储过程学习(二)
- c语言是学习编程的一个开始,学习好的c语言,其它语言就容易入门啦!
- cocos2d-x特效之CCControlPotentiometer
- ASP.NET输入汉字返回每个汉字拼音的头一个字母的大写形式
- codility上的问题 (21) Upsilon 2012
- HDU 1009 FatMouse' Trade(经典贪心)
- keil 中常见的几种警告
- linux 命令详解
- Android Service 详解
- jquery.validation.js 使用说明
- You must restart adb and Eclipse