#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));
}
cocos2d-x学习笔记(8)--progress(进度条) .rar
4星 · 超过85%的资源 需积分: 10 39 浏览量
2012-08-25
22:46:02
上传
评论 1
收藏 508KB RAR 举报
w踏雪w
- 粉丝: 228
- 资源: 37
最新资源
- 基于Java的银行客户及用户管理系统设计源码
- 免费Ollama 官方大模型服务器安装程序
- 【个人博客搭建】(5)Sqlsugar实体创建数据库数据 生成时打印的SQL语句,也可用他创建
- 基于Scrapy和Redis的分布式爬虫设计源码
- 纯HTML外贸公司通用企业html网站模板源码
- 基于Flask轻量级Web框架的Aliexpress项目设计源码
- Java毕设之ssm-079-mysql-ssm软件bug管理系统-.rar
- 基于Vue和TypeScript的移动端潮玩商城设计源码
- Java毕设之ssm-067-mysql-网约车用户服务平台-.rar
- Java毕设之ssm-065-mysql-高校学生请假管理系统-.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页