#include "HelloWorldScene.h"
using namespace cocos2d;
static int index = 1;
const int MAX_INDEX = 3;
CCLayer* runThisTest(int index)
{
switch(index)
{
case 1: return new SpriteProgressToRadial();
case 2: return new SpriteProgressToHorizontal();
case 3: return new SpriteProgressToVertical();
}
return NULL;
}
CCScene* HelloWorld::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::node();
CC_BREAK_IF(! scene);
// 'layer' is an autorelease object
SpriteProgressToRadial* layer = new SpriteProgressToRadial();
CC_BREAK_IF(! layer);
// add layer as a child to scene
scene->addChild(layer);
} while (0);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
return true;
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
CCDirector::sharedDirector()->end();
}
/************************************************************************/
/* SpriteDemo */
/************************************************************************/
std::string SpriteDemo::title()
{
return "ProgressActionsTest";
}
void SpriteDemo::onEnter()
{
CCLayer::onEnter();
CCSize size = CCDirector::sharedDirector()->getWinSize();
//添加标题
std::string strTitle = title();
const char* ptitle = strTitle.c_str();
CCLabelTTF* label = CCLabelTTF::labelWithString(ptitle,"Arial", 28);
label->setPosition(ccp(size.width/2, size.height-30));
addChild(label);
//添加基本按钮
CCLabelTTF* pNextLabel = CCLabelTTF::labelWithString("Next ", "Arial", 28);
CCLabelTTF*pBackLabel = CCLabelTTF::labelWithString("Back ", "Arial", 28);
CCLabelTTF*pRestartLabel = CCLabelTTF::labelWithString("Restart ", "Arial", 28);
CCMenuItemLabel* pNextItem = CCMenuItemLabel::itemWithLabel(
pNextLabel, this, menu_selector(SpriteDemo::nextCallback));
CCMenuItemLabel* pBackItem = CCMenuItemLabel::itemWithLabel(
pBackLabel, this, menu_selector(SpriteDemo::backCallback));
CCMenuItemLabel* pRestartItem = CCMenuItemLabel::itemWithLabel(
pRestartLabel, this, menu_selector(SpriteDemo::restartCallback));
CCMenu* pNextMenu = CCMenu::menuWithItem(pNextItem);
CCMenu* pBackMenu = CCMenu::menuWithItem(pBackItem);
CCMenu* pRestartMenu = CCMenu::menuWithItem(pRestartItem);
pNextItem->setPosition(ccp(size.width/2 +150, 50));
pBackItem->setPosition(ccp(size.width/2 - 150, 50));
pRestartItem->setPosition(ccp(size.width/2 , 50));
pNextMenu->setPosition(CCPointZero);
pBackMenu->setPosition(CCPointZero);
pRestartMenu->setPosition(CCPointZero);
addChild(pNextMenu,1);
addChild(pBackMenu, 1);
addChild(pRestartMenu,1);
}
void SpriteDemo::backCallback(CCObject* pSender)
{
if(index == 1)
return;
index--;
CCScene* scene = new CCScene();
CCLayer* layer = runThisTest(index);
scene->addChild(layer);
CCDirector::sharedDirector()->replaceScene(scene);
scene->release();
layer->release();
}
void SpriteDemo::restartCallback(CCObject* pSender)
{
CCScene* scene = new CCScene();
CCLayer* layer = runThisTest(index);
scene->addChild(layer);
CCDirector::sharedDirector()->replaceScene(scene);
scene->release();
layer->release();
}
void SpriteDemo::nextCallback(CCObject* pSender)
{
if(index == MAX_INDEX)
return;
index++;
CCScene* scene = new CCScene();
CCLayer* layer = runThisTest(index);
scene->addChild(layer);
CCDirector::sharedDirector()->replaceScene(scene);
scene->release();
layer->release();
}
/************************************************************************/
/* SpriteProgressToRadial */
/************************************************************************/
std::string SpriteProgressToRadial::title()
{
return "SpriteProgressToRadial";
}
void SpriteProgressToRadial::onEnter()
{
SpriteDemo::onEnter();
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCProgressTo* p1 = CCProgressTo::actionWithDuration(2,80);
//第一个参数是时间,第二个参数是表示只旋转80%
CCProgressTimer* pt = CCProgressTimer::progressWithFile("radial.png");
pt->setType(kCCProgressTimerTypeRadialCW);
addChild(pt);
pt->setPosition(ccp(size.width / 2, size.height / 2));
pt->runAction(CCRepeatForever::actionWithAction(p1));
}
/************************************************************************/
/* SpriteProgressToHorizontal */
/************************************************************************/
std::string SpriteProgressToHorizontal::title()
{
return "SpriteProgressToHorizontal";
}
void SpriteProgressToHorizontal::onEnter()
{
SpriteDemo::onEnter();
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCProgressTo* to = CCProgressTo::actionWithDuration(2,100);
CCProgressTimer*pt = CCProgressTimer::progressWithFile("horizonal.png");
pt->setType(kCCProgressTimerTypeHorizontalBarLR);
addChild(pt);
pt->setPosition(ccp(size.width / 2, size.height / 2));
pt->runAction(CCRepeatForever::actionWithAction(to));
}
/************************************************************************/
/* SpriteProgressToVertical */
/************************************************************************/
std::string SpriteProgressToVertical::title()
{
return "SpriteProgressToVertical";
}
void SpriteProgressToVertical::onEnter()
{
SpriteDemo::onEnter();
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCProgressTo* to = CCProgressTo::actionWithDuration(2,100);
CCProgressTimer*pt = CCProgressTimer::progressWithFile("vertical.png");
pt->setType(kCCProgressTimerTypeVerticalBarBT);
pt->setPosition(ccp(size.width / 2, size.height / 2));
addChild(pt);
pt->runAction(CCRepeatForever::actionWithAction(to));
}
- 1
- 2
- 3
前往页