#include <stdio.h>
#include "cocos2d.h"
#include "StartScene.hpp"
#include "ui/CocosGUI.h"
#include "SimpleAudioEngine.h"
USING_NS_CC;
using namespace ui;
using namespace CocosDenshion;
class Setting:public Layer{
public:
static Scene* createScene();
virtual bool init();
void menuCallBack();
void createSlider();
void SliderCallBack(Ref *pSender,Slider::EventType type);
CREATE_FUNC(Setting);
};
<pre name="code" class="cpp">#include "SettingScene.hpp"
Scene * Setting::createScene(){
auto scene = Scene::create();
auto layer = Setting::create();
scene->addChild(layer);
return scene;
}
bool Setting::init(){
if (!Layer::init()) {
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
auto sprite = Sprite::create("mineBG3.png");
sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
sprite->setScale(2.0f, 1.1788f);
this->addChild(sprite);
auto back = MenuItemImage::create("back.png","back.png",CC_CALLBACK_0(Setting::menuCallBack, this));
back->setPosition(Vec2(900, 50));
back->setScale(2.0f);
auto menu = Menu::create(back, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu,2);
SimpleAudioEngine::getInstance()->playBackgroundMusic("backMusic.mp3",true);
SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.5);
createSlider();
return true;
}
void Setting::createSlider(){
auto visibleSize = Director::getInstance()->getVisibleSize();
//创建一个滑块条
auto sl = Slider::create();
sl->loadBarTexture("sliderTrack.png");
sl->loadSlidBallTextures("sliderballnormal.png", "sliderballpressed.png", "sliderThumb.png");
//设置进度条的图片
sl->loadProgressBarTexture("sliderProgress.png");
sl->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
sl->setPercent(75);
//回调函数,带两个参数,每改变百分比的时候回调用一次
sl->addEventListener(CC_CALLBACK_2(Setting::SliderCallBack, this));
this->addChild(sl);
}
void Setting::SliderCallBack(Ref *pSender, Slider::EventType type){
auto item = (Slider*)(pSender);
log("%i",item->getPercent());
if (item->getPercent() == 100) {
item->setEnabled(false);
}else{
SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(item->getPercent() / 100.0f);
}
}
void Setting::menuCallBack(){
auto scene = Start::createScene();
auto transition = TransitionSlideInL::create(1.0, scene);
Director::getInstance()->replaceScene(transition);
}