zoukankan      html  css  js  c++  java
  • 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();
        }
    }


    运行结果:



    
  • 相关阅读:
    01-NoSQL概述
    SSM快速整合
    C语言指针传参与C++引用传参,以及尾插法建立单链表使用到的引用
    IP地址相关
    二叉树的先序遍历、中序遍历、后序遍历-C语言描述
    华为5G认证练习题2
    华为5G认证练习题
    华为ICT学堂获取练习题及答案
    C++ cin对象的一些方法
    webpack学习笔记2:新建工程
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7219177.html
Copyright © 2011-2022 走看看