CCScheduler( 定时调度器) | schedule(定时器) & update(定时器)

------------------------------------------------------------

定时调度器 CCScheduler

CCScheduler可以算是个计时器(单例),可以根据需要通过此类下的各种方法设定计时来执行回调函数,达到计时控制精灵、动画的作用。官方原例中已经演示了这个类的具体使用方法,这里就记录一下使用方法:

1.setTimeScale

用于减慢或者快进动画,其默认参数值为1.0,低于此值时计时器会放慢,否则加快,下面是代码:

复制代码

class SchedulerTimeScale : public cocos2d::CCLayer  
{  
public:  
    void onEnter();  
    void onExit();  
    CCControlSlider* sliderCtl();  
    void sliderAction(CCObject* pSender, CCControlEvent controlEvent);  
    CCControlSlider* m_pSliderCtl;  
    CREATE_FUNC(SchedulerTimeScale);  
};  

复制代码

cpp

复制代码

CCControlSlider* SchedulerTimeScale::sliderCtl()  
{  
    //添加一个滑动条用来控制动画速度  
    CCControlSlider * slider = CCControlSlider::create("sliderTrack2.png","sliderProgress2.png" ,"sliderThumb.png");  
    //滑动条数值产生变化时调用自定义的<span style="font-family: Arial, Helvetica, sans-serif;">sliderAction来执行setTimeScale</span>  
    slider->addTargetWithActionForControlEvents(this, cccontrol_selector(SchedulerTimeScale::sliderAction), CCControlEventValueChanged);  
  
    slider->setMinimumValue(-3.0f);  
    slider->setMaximumValue(3.0f);  
    slider->setValue(1.0f);  
  
    return slider;  
}  
  
void SchedulerTimeScale::sliderAction(CCObject* pSender, CCControlEvent controlEvent)  
{  
    CCControlSlider* pSliderCtl = (CCControlSlider*)pSender;  
    float scale;  
    scale = pSliderCtl->getValue();  
    //这里由导演取得所有动画的计时器并执行setTimeScale  
    CCDirector::sharedDirector()->getScheduler()->setTimeScale(scale);  
}  
  
void SchedulerTimeScale::onEnter()  
{  
    CCLayer::onEnter();  
    CCSize s = CCDirector::sharedDirector()->getWinSize();  
  
    // rotate and jump  
    CCActionInterval *jump1 = CCJumpBy::create(4, ccp(-s.width+80,0), 100, 4);  
    CCActionInterval *jump2 = jump1->reverse();  
    CCActionInterval *rot1 = CCRotateBy::create(4, 360*2);  
    CCActionInterval *rot2 = rot1->reverse();  
  
    CCSequence* seq3_1 = CCSequence::create(jump2, jump1, NULL);  
    CCSequence* seq3_2 = CCSequence::create(rot1, rot2, NULL);  
    CCFiniteTimeAction* spawn = C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值