Cocos2d-x
发布时间:2022-05-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2dx 对全部动作或单个动作速度的改变,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一、对全部CCActionInterval动作进行加速或减速,这个很简单只要一句代码就可以。
- CCDirector::sharedDirector()->getscheduler()->setTimeScale(2);
- CCDirector::sharedDirector()->getscheduler()->setTimeScale(0.5);
二、对个别单个动作进行加速或减速
有两种方法
1.通过CCSpeed实现
- CCSprite*sprite=CCSprite::create();
- CCActionInterval*jump=CCJumpBy::create(4,ccp(0,0),100,4);
- sprite->runAction(CCSpeed::create(jump,2));
2.通过CCActionManager实现,着重讲这个方法
- CCscheduler*scheduler1;
- voidHelloWorld::myInit11()
- {
- CCSizesize=CCDirector::sharedDirector()->getWinSize();
- CCControlSlider*slider1=CCControlSlider::create("sliderTrack.png","sliderProgress.png","sliderThumb.png");
- slider1->setPosition(ccp(size.width/4*2,size.height*0.3));
- this->addChild(slider1);
- slider1->setTag(1);
- slider1->setMinimumValue(0);
- slider1->setMaximumValue(5);
- slider1->addTargetWithActionForControlEvents(this,cccontrol_@R_489_10288@ctor(HelloWorld::sliderAction),CCControlEventValueChanged);
- scheduler1=newCCscheduler();
- CCDirector::sharedDirector()->getscheduler()->scheduleupdateForTarget(scheduler1,false);
- CCActionManager*actionManager1=newCCActionManager();
- scheduler1->scheduleupdateForTarget(actionManager1,false);
- CCActionInterval*jump1=CCJumpBy::create(4,4);
- CCActionInterval*jump2=jump1->reverse();
- CCSequence*seq=CCSequence::create(jump2,jump1,null);
- CCRepeatForever*action=CCRepeatForever::create(seq);
- CCSprite*left=CCSprite::create("Icon.png");
- left->setPosition(ccp(size.width/4*1,size.height*0.5));
- this->addChild(left);
- left->setActionManager(actionManager1);
- left->runAction(action);
- CCSprite*middle=CCSprite::create("Icon.png");
- @H_464_18@middle->setPosition(ccp(size.width/4*2,size.height*0.5));
- this->addChild(middlE);
- @H_464_18@middle->setActionManager(actionManager1);
- @H_464_18@middle->runAction(CCRepeatForever::create(CCRotateBy::create(2,360)));
- CCSprite*right=CCSprite::create("Icon.png");
- right->setPosition(ccp(size.width/4*3,size.height*0.5));
- this->addChild(right);
- CCActionInterval*scale1=CCScaleBy::create(1,2);
- CCActionInterval*scale2=scale1->reverse();
- CCSequence*seq2=CCSequence::create(scale1,scale2,null);
- CCRepeatForever*action2=CCRepeatForever::create(seq2);
- right->setActionManager(actionManager1);
- right->runAction(action2);
- }
- voidHelloWorld::sliderAction(CCObject*pSender,CCControlEventcontrolEvent)
- {
- CCControlSlider*pSliderCtl=(CCControlSlider*)pSender;
- floatvalue=pSliderCtl->getValue();
- scheduler1->setTimeScale(value);
- }
- HelloWorld::~HelloWorld()
- {
- scheduler1->release();
- }
大佬总结
以上是大佬教程为你收集整理的cocos2dx 对全部动作或单个动作速度的改变全部内容,希望文章能够帮你解决cocos2dx 对全部动作或单个动作速度的改变所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。