• Cocos2d-X中使用ProgressTimer实现一些简单的效果


    我在上一篇博客中介绍了ProgressTimer的使用方法,这篇博客决定写一些使用Progress实现一些简单的效果,

    程序实例:ProgressTimer实现效果1

    首先在project文件夹下的Resource文件夹中加入两张图片

           

    然后定义一个Progress类

    在Progress.h中加入以下的代码

    #ifndef _Progress_H_
    #define _Progress_H_
    
    #include "cocos2d.h"
    USING_NS_CC;
    
    class Progress : public CCLayer
    {
    public:
        static CCScene* scene();
    
        bool init();
    
        CREATE_FUNC(Progress);
    
        void scheduleFunc(float dt);
    };
    
    #endif
    
    

    在Progress.cpp中加入以下代码

    #include "Progress.h"
    
    
    CCScene* Progress::scene()
    {
        CCScene* scene = CCScene::create();
    
        Progress* layer = Progress::create();
    
        scene->addChild(layer);
    
        return scene;
    }
    
    bool Progress::init()
    {
        CCLayer::init();
    
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    
        CCPoint center = ccp(winSize.width / 2, winSize.height / 2);
    
        CCSprite* bg = CCSprite::create("2.png");
        CCSprite* sprite = CCSprite::create("1.png");
    
        bg->setPosition(center);
    
        addChild(bg);
    
        CCProgressTimer* progress = CCProgressTimer::create(sprite);
    
        progress->setPosition(center);
    
        addChild(progress);
    
        //设置进度条的模式
        //kCCProgressTimerTypeBar表示条形模式
        progress->setType(kCCProgressTimerTypeBar);
    
        //设置进度条变化的方向
        //ccp(0,1)表示沿着y轴变化
        progress->setBarChangeRate(ccp(0,1));
    
        //设置进度条的起始位置
        //ccp(0,0)表示以下
        progress->setMidpoint(ccp(0,0));
    
        //设置进度条的ID
        progress->setTag(100);
    
        //创建一个定时器
        schedule(schedule_selector(Progress::scheduleFunc), 0.1f);
    
        return true;
    }
    
    void Progress::scheduleFunc(float dt)
    {
        //通过进度条的ID得到进度条
        CCProgressTimer* progress = (CCProgressTimer*)getChildByTag(100);
    
       //设置progress的进度,每调用一次进度加一
        progress->setPercentage(progress->getPercentage() + 1);
        
         //当进度大于或者等于100时
        if(progress->getPercentage() >= 100)
        {
              //终止定时器
            unscheduleAllSelectors();
        }
    }

    运行结果:



    程序实例:ProgressTimer实现效果1

    首先在project文件夹下的Resource文件夹中加入两张图片





    在Progress.cpp中加入以下的代码

    #include "Progress.h"
    
    
    CCScene* Progress::scene()
    {
        CCScene* scene = CCScene::create();
    
        Progress* layer = Progress::create();
    
        scene->addChild(layer);
    
        return scene;
    }
    
    bool Progress::init()
    {
        CCLayer::init();
        
        //设置背景颜色为白色
        CCLayerColor* layer = CCLayerColor::create(ccc4(255, 255, 255, 255));   
        addChild(layer);    
    
    
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    
        CCPoint center = ccp(winSize.width / 2, winSize.height / 2);
    
        CCSprite* bg = CCSprite::create("4.png");
        CCSprite* sprite = CCSprite::create("3.png");
    
        bg->setPosition(center);
    
        addChild(bg);
    
        CCProgressTimer* progress = CCProgressTimer::create(sprite);
    
        progress->setPosition(center);
    
        addChild(progress);
    
        //设置进度条的ID
        progress->setTag(100);
    
        //创建一个定时器
        schedule(schedule_selector(Progress::scheduleFunc), 0.1f);
    
        return true;
    }
    
    void Progress::scheduleFunc(float dt)
    {
        //通过进度条的ID得到进度条
        CCProgressTimer* progress = (CCProgressTimer*)getChildByTag(100);
    
       //设置progress的进度,每调用一次进度加一
        progress->setPercentage(progress->getPercentage() + 1);
        
         //当进度大于或者等于100时
        if(progress->getPercentage() >= 100)
        {
              //终止定时器
            unscheduleAllSelectors();
        }
    }


    运行结果:



    
  • 相关阅读:
    递归树结构封装
    Excel父子数据导入
    资产类标准数据源抽取顺序
    资产模型数据初始化时应注意的事项
    Input Parameters and Variables in SAP HANA Modeling
    2LIS_03_BX数据源的用处及抽取步骤
    BW资产数据源抽取顺序
    MM物料移动BW数据源介绍
    关于BW newGL datasource
    使用SLT系统抽数到hana系统
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7219177.html
Copyright © 2020-2023  润新知