感谢点评与关注,欢迎转载与分享。
勤奋努力,持之以恒!
一、对全部CCActionInterval动作进行加速或减速,这个很简单只要一句代码就可以。
CCDirector::sharedDirector()->getScheduler()->setTimeScale(2);//以目前2倍速度播放
CCDirector::sharedDirector()->getScheduler()->setTimeScale(0.5);//以目前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倍速度播放动作
2.通过CCActionManager实现,着重讲这个方法
CCScheduler* scheduler1;
void HelloWorld::myInit11()
{
CCSize size = 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_selector(HelloWorld::sliderAction), CCControlEventValueChanged);
// Create a new scheduler, and link it to the main scheduler
scheduler1 = new CCScheduler();
CCDirector::sharedDirector()->getScheduler()->scheduleUpdateForTarget(scheduler1, 0, false);
// Create a new ActionManager, and link it to the new scheudler
CCActionManager* actionManager1 = new CCActionManager();
scheduler1->scheduleUpdateForTarget(actionManager1, 0, false);
//左边精灵
CCActionInterval *jump1 = CCJumpBy::create(4, ccp(0,0), 100, 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);
// IMPORTANT: Set the actionManager running any action
left->setActionManager(actionManager1);
left->runAction(action);
//中间精灵
CCSprite* middle = CCSprite::create("Icon.png");
middle->setPosition(ccp(size.width/4*2, size.height*0.5));
this->addChild(middle);
middle->setActionManager(actionManager1);
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);
}
void HelloWorld::sliderAction(CCObject* pSender, CCControlEvent controlEvent)
{
CCControlSlider* pSliderCtl = (CCControlSlider*)pSender;
float value = pSliderCtl->getValue();
scheduler1->setTimeScale(value);
}
HelloWorld::~HelloWorld()
{
scheduler1->release();
}
分享到:
相关推荐
cocos2dx scrollview优化
基于cocos2dx3.2的ScrollView改良版,paging分页部分是参考网上已有的源代码并进行改良,修复bug, indicator指示器部分是自己研发。 测试环境:mac os x (Windows平台 应该可行,需要你自己添加PagedScrollView到...
自制cocos2dx动作
cocos2dx 模糊效果代码提供,尽情下载吧!
cocos2dx中使用精灵的例子,新手可参考。
IOS开发中因为引入cocos2dx,导致代码审核不通过无法提交( Apple will stop accepting submissions of apps that use UIWebView APIs )。该问题的解决方案有两种:1)升级Cocos2dx的版本,在查看Cocoas官网及Cocoas...
我所理解的cocos2dx pdf
此代码在cocos2dx2.1.4下面编译有部分错误,我修改后,正常。 下下来后,请在VC++包含目录中链接(F:\cocos2d-x-2.1.4\cocos2dx\platform\win32;F:\cocos2d-x-2.1.4\cocos2dx\platform\third_party\win32\OGLES\GL\;...
cocos2dx 2048
cocos2dx可用3d粒子编辑器,支持pc、mac、iphone、android等平台
某手游cocos代码
使用cocos2dx新建的helloword工程,嵌入到android原生项目中的demo
delphi-cocos2dx.zip
一系列cocos2dx相关的pdf书籍文档,方便热爱cocos2dx的同学学习
cocos2dx斗地主服务端,客户端在我的资源列表中
cocos2dx学习代码,小游戏黄金矿工,值得学习.重要事情说三遍
COCOS2DX开发工具大全,免得开发者到处找,全部可以用,包括破解文件,具体包括: TexturePacker,CocosBuilder,cocos2dx粒子编辑器等
手游开发引擎 Cocos2DX.手机游戏开发
培训机构cocos2dx培训文档,对cocos2dx初学者有比较大的帮助
cocos2dx工程模板