cocos2d-x開發 之 使用slider滑動條做喫雞中醫療包的數量選擇

效果如下

以下是頭文件


#pragma once

#include "cocos2d.h"
using namespace cocos2d;

#include "ui/CocosGUI.h"
using namespace ui;

class SliderScene : public Scene
{
public:
	//static SliderScene* getinstance();
	static Scene* createscene();
	virtual bool init();
	CREATE_FUNC(SliderScene);

private:	
	SliderScene() :MaxPercent(100)//初始化爲100
	{

	};
	int MinPercent;       //變化數量
	const int MaxPercent; //最大數量限度
	Label* _label; //顯示數量

	static SliderScene* GTI;  //單例(可以按正常的,不需要單例)
};

以下是cpp文件

SliderScene* SliderScene::GTI = NULL;
Scene* SliderScene::createscene()
{
	if (GTI == NULL)
	{
		GTI = new SliderScene;
		return GTI->create();
	}
	else
	{
		return GTI->create();
	}
}

bool SliderScene::init()
{
	if (!Scene::init())
		return false;
	//進行創建
	auto slider = Slider::create();
	this->addChild(slider);

	//設置百分比初始值
	MinPercent = 0;

	//設置文本
	String* _str = String::createWithFormat("%d/%d", MinPercent, MaxPercent);
	_label = Label::createWithSystemFont(_str->getCString(), "fonts/arial.ttf", 70);
	_label->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
	_label->setPosition(Director::getInstance()->getVisibleSize().width /2 + 100, Director::getInstance()->getVisibleSize().height /2 + 100);
	this->addChild(_label);

	//加載滑動條背景
	slider->loadBarTexture("slider2.png");
	
	//加載滑塊資源
	slider->loadSlidBallTextures("slider3.png", "slider3.png", "slider3.png");
	
	//加載滑動條資源
	slider->loadProgressBarTexture("slider1.png");
	//slider->loadProgressBarTexture();
	//設置滑動條百分比
	slider->setPercent(MinPercent);

	//設置動態事件
	slider->addEventListener([&](Ref* ref, Slider::EventType type)
		{
			if (type == Slider::EventType::ON_PERCENTAGE_CHANGED)
			{
				int percent = dynamic_cast<Slider*> (ref)->getPercent();
				MinPercent = percent;
				String* str = String::createWithFormat("%d/%d", MinPercent, MaxPercent);
				_label->setString(str->getCString());
			}
			
		});


	//設置座標
	slider->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
	slider->setPosition(Director::getInstance()->getVisibleSize() / 2);
    
    //加載醫療包精靈
     auto jijiubao = Sprite::create("timg.png");
    this->addChild(jijiubao);
    jijiubao->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
    jijiubao->setPosition(Director::getInstance()->getVisibleSize()/2 + Size(0,250));


	return true;


	
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章