cocos2d-x 3.x学习之拖动滑块类
2016-07-09 16:27
615 查看
#include "cocos2d.h" #include "extensions/GUI/CCControlExtension/CCControl.h" #include "extensions/GUI/CCControlExtension/CCControlSlider.h" using namespace cocos2d; using namespace extension; USING_NS_CC; class HelloWorld : public Layer { protected: Label* _displayValueLabel; public: static Scene* createScene(); virtual bool init(); void valueChanged(Ref* sender,Control::EventType controlEvent); void menuCloseCallback(cocos2d::Ref* pSender); CREATE_FUNC(HelloWorld); }; #include "HelloWorldScene.h" USING_NS_CC; Scene* HelloWorld::createScene() { auto scene = Scene::create(); auto layer = HelloWorld::create(); scene->addChild(layer); return scene; } bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2)); auto menu = Menu::create(closeItem, NULL); menu->setPosition(Vec2::ZERO); this->addChild(menu, 1); //设置标签初始文字、位置、并添加为当前层的子节点 _displayValueLabel = Label::createWithSystemFont("请使用拇指移动滑块", "Marker Felt", 32); _displayValueLabel->setPosition(visibleSize.width / 2,visibleSize.height / 2 + 100); this->addChild(_displayValueLabel); //创建一个拖动滑块 auto slider = ControlSlider::create("sliderTrack.png", "sliderProgress.png","sliderThumb.png"); //设置拖动滑块的范围最小值 slider->setMinimumValue(0.0f); //设置拖动滑块范围最大值 slider->setMaximumValue(10.0f); //绑定事件处理函数,当滑块被拖动时被调用 slider->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), Control::EventType::VALUE_CHANGED); slider->setPosition(visibleSize.width / 2,visibleSize.height / 2); this->addChild(slider); return true; } //事件处理函数,当滑块被拖动时被调用 void HelloWorld::valueChanged(Ref *sender, Control::EventType controlEvent){ //将sender类型转成拖动滑块 ControlSlider* pSlider = (ControlSlider*)sender; //获取滑块的当前值,并更新标签内 _displayValueLabel->setString(StringUtils::format("滑块值=%.02f",pSlider->getValue())); }
相关文章推荐
- cocos 中熟练运用场景的切换
- 减少cocos2dx3.3-lua的so文件大小笔记
- Cocos2d-x Json读写
- 【Cocos Creator 基础教程(其他)】——游戏素材资源获取方法
- Cocos2d-x 内存管理
- Cocos2d-3.x触摸事件 中 setSwallowTouches
- Cocos2D-ObjC:在RPG游戏中混合Swift代码
- Cocos2D-ObjC:在RPG游戏中混合Swift代码
- Cocos2D-ObjC:在RPG游戏中混合Swift代码
- cocos2d-lua android解决启动时因为资源加载而黑屏的问题
- cocos2dx-3.x萝莉快跑学习(一)
- 编译Cocos2dx程序 (一)
- cocos2d基础
- cocos2d基础
- COCOS2DX与LUA互相调用使用方法
- cocos2dx中的声音
- cocos中的简易绘图
- cocos中的自定义按钮
- cocos事件响应机制
- cocos定时器