【Cocos2d-x】音量滑动设定以及自动保存功能实现(完整模块)
来源:互联网 发布:考古学禁区 知乎 编辑:程序博客网 时间:2024/06/12 01:16
【囧希博客个人原创文章,欢迎讨论交友,如转载请注明出处:http://blog.csdn.net/yunpro】
【本段代码可以单独使用在一个场景中,作为一个独立完整的功能模块使用!】
该段代码可以实现滑动改变音量以及自动保存的功能,
可以在单独设定的页面中对音量,以及音效进行单独分别的设定。
图片使用的附件是cocos引擎text例子内的代码。
【效果图】
【实例代码】
<span style="font-size:14px;">#include "ui/CocosGUI.h"USING_NS_CC;using namespace ui;Scene* AudioControl::createScene(){ auto scene =Scene::create(); auto layer =AudioControl::create(); scene->addChild(layer); return scene;}bool AudioControl::init(){ if(!Layer::init()){ return false; } //获得设备尺寸 Size visibleSize = Director::getInstance()->getVisibleSize(); //BGM条 //创建背景音乐文本,并添加为当前层的子节点 auto music_text = Text::create("音乐音量","Arial",32); music_text->setPosition(Vec2(visibleSize.width*0.25, visibleSize.height*0.7)); this->addChild(music_text); //创建一个滑动进度条 auto music_slider=Slider::create(); music_slider->loadBarTexture("sliderTrack.png"); music_slider->loadSlidBallTextures("sliderThumb.png", "sliderThumb.png", ""); music_slider->loadProgressBarTexture("sliderProgress.png"); //获取之前设置的音乐音量 float musicPercent = UserDefault::getInstance()->getFloatForKey("musicPercent"); // //第一次默认100// if(musicPercent == 0.0f){// musicPercent = 100.0f;// } //设置背景初始值 music_slider->setPercent(musicPercent); music_slider->cocos2d::Node::setPosition(Vec2(visibleSize.width*0.6, visibleSize.height*0.7)); //添加监听器 music_slider->addEventListener([=](Ref* pSender,Slider::EventType type){ //当滑块的百分比发生变化的时候 if(type== Slider::EventType::ON_PERCENTAGE_CHANGED){ //获得滑动条的百分比 int percent = music_slider->getPercent(); SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(float(percent)/100); UserDefault::getInstance()->setFloatForKey("musicPercent", percent); } }); this->addChild(music_slider); //EF条 //文 auto sound_text =Text::create("音效音量", "Arial", 32); sound_text->setPosition(Vec2(visibleSize.width*0.25,visibleSize.height*0.5)); this->addChild(sound_text); //条 auto effects_slider =Slider::create(); effects_slider->loadBarTexture("sliderTrack.png");//条材质 effects_slider->loadSlidBallTextures("sliderThumb.png", "sliderThumb.png", ""); effects_slider->loadProgressBarTexture("sliderProgress.png"); float effectPercent = UserDefault::getInstance()->getFloatForKey("effectPercent");//获取之前设定EF值 // if (effectPercent == 0.0f) {//初次进入100// effectPercent = 100.0f;// } effects_slider->setPercent(effectPercent);//设定初始值 effects_slider->cocos2d::Node::setPosition(Vec2(visibleSize.width*0.6,visibleSize.height*0.5)); effects_slider->addEventListener([=](Ref* pSender,Slider::EventType type){//获取,改变 if(type== Slider::EventType::ON_PERCENTAGE_CHANGED){ int percent = effects_slider->getPercent(); SimpleAudioEngine::getInstance()->setEffectsVolume(float(percent)/100); UserDefault::getInstance()->setFloatForKey("effectPercent", percent); } }); this->addChild(effects_slider); //返回 auto return_button = Button::create("b1.png"); return_button->setPosition(Vec2(visibleSize.width/2,visibleSize.width/2-300)); return_button->getContentSize().width/2; return_button->getContentSize().height/2; return_button->addTouchEventListener([](Ref* pSender,Widget::TouchEventType type){ if (type == Widget::TouchEventType::ENDED) { auto transition = TransitionSlideInL::create(0.3,GameMenu::createScene()); Director::getInstance()->replaceScene(transition); } }); this->addChild(return_button); //版权 auto banner_text = Text::create("『帮助』自动保存设置声量大小","Arial-BoldMT",32); banner_text->setPosition(Vec2(visibleSize.width/2, visibleSize.height*0.15)); this->addChild(banner_text); //网址 auto email_text = Text::create("wy66666666@qq.com", "Arial-BoldMT", 32); email_text->setPosition(Vec2(visibleSize.width/2,visibleSize.height*0.1)); this->addChild(email_text); return true;}</span>
本人热衷游戏程序制作,欢迎和我进行探讨与各种交流!
咱邮箱:wy66666666@qq.com
0 0
- 【Cocos2d-x】音量滑动设定以及自动保存功能实现(完整模块)
- cocos2d-x滑动模块学习
- viewpager实现自动滑动以及手势滑动功能
- cocos2d-x实现列表滑动
- 为cocos2d-x添加调节视频音量的功能(Android)
- COCOS2D-X 音量
- cocos2d-X 3.10关于声音开关以及音量大小问题
- cocos2d-x 3.x学习之滑动条控制背景音乐音量
- cocos2d-x实现自动换行
- cocos2d-x CCLayer滑动效果和自定义剪切区域功能实现_CCScroeView
- 【玩转cocos2d-x之二十四】截图保存功能的实现
- 【玩转cocos2d-x之二十四】截图保存功能的实现
- cocos2d-x下硬件音量按键控制游戏音量的实现
- 转载:cocos2d-x下硬件音量按键控制游戏音量的实现
- cocos2D中实现滑动菜单CCScrollView+CCMenu效果,(注意不是cocos2D-x)!!
- 在 cocos2d-x 中使用 libcurl 实现上传文件功能(附quick-cocos2d-x封装)
- Cocos2d-X 记住密码功能的实现代码(一)
- cocos2d-x 多分辨率设定
- cocos2d-x3.2场景切换
- java MD5加密
- Cocos2d-x3.3 Physics物理引擎模块解决了刚体穿透问题
- CocoStudio1.6UI编辑器动画播放
- Codeforces Round #294 (Div. 2) C
- 【Cocos2d-x】音量滑动设定以及自动保存功能实现(完整模块)
- Redis分布式集群
- Android应用的基本组件介绍
- Cocos2d-x3.2游戏的核心循环在Application,如何处理FPS不稳
- android 5.0源码下载
- 大型网站技术架构:核心原理与案例分析-李智慧
- (转)详解汇编系统调用过程(以printf为例)
- cocos2d-x3.2单点触摸
- c语言危险库函数及解决方案