cocos2d-x动画加速与减速

cocos2d文字加速移动淡出代码 cocos2d文字加速移动淡出代码 CCActionInterval* fadeout = CCFadeOut::create(10.0f); CCActionInterval* moveto = CCMoveTo::create(10.0f,ccp(400,300)); CCActionInterval* actionease = CCEaseIn::create(moveto,5.0); CCAction* act = CCSpawn::create(fadeout,moveto,actionease,NULL); testFADE->runAction(/*CCSequence::create(moveto,fadeout,NULL)*/act); 立即下载

动画是游戏的必然要素之一,在整个游戏过程中,又有着加速、减速动画的需求。以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速;当某个怪被冰冻后,移动速度减缓,而其他怪的移动速度不变。cocos2d-x引擎为我们提供了很强大的接口,下面就将我实验的过程复述一遍,也方便他人。

1)实现全局的加速、减速。

通过设置Scheduler的timeScale,可以实现全局的加、减速。代码非常简单:
CCScheduler* pScheduler = CCDirector::sharedDirector()->getScheduler();
pScheduler->setTimeScale(2.0f); //实现加速效果
pScheduler->setTimeScale(0.5f);//实现减速效果

 

2)实现对某个CCActionInterval动作的加速、减速

方法一:很容易想到的一个方法就是改变CCAnimation的delay unit。代码如下:

CCAnimation* pAnimation = CCAnimationCache::sharedAnimationCache()->animationByName(“xxx”);

pAnimation->setDelayUnit(pAnimation->getDelayUnit()*0.2f); //速度为原来的5倍

这个方法有一个缺点:改变了CCAnimationCache中这个animation的delay unit。也就是说以后即使再从CCAnimationCache中获取这个animation,其delay unit已经是原来的0.2倍了。

 

方法二:cocos2d-x提供了CCSpeed的类,可以实现动画速度的调节。用法如下:

CCActionInterval* pActionInterval = CCMoveTo::create(5.0f, ccp(500.0f, 100.0f));

CCSpeed* pSpeed= CCSpeed::create(pActionInterval, 1.5f); //1.5倍速运行

CCSpeed* pSpeed1 = CCSpeed::create(pActionInterval, 0.2f);// 0.2倍速运行

pSprite->runAction(pSpeed);

注意,如果pSprite有已经运行的动作,要用pSprite->stopActionByTag()停掉之前的动作,不然两个动作就叠加到一起了。

—————————————————————–华丽丽的分割线————————————————————————–

来自HIMI的提示:

很多时候你的主角的动作利用CCAction来实现,移动则是在update刷帧函数或者一些选择器的方法中进行的,那么为了让你的主角慢动作比较逼真,那么Himi建议不要使用scheduleUpdate函数,因为这个你无法修改每次调用update的时间默认都是每帧都调用,那么你应该自己定义一个选择器当刷逻辑的函数,这样就能配合CCSpeed实现逼真慢动作拉~

3)对某个CCFiniteTimeAction类型动作的加速、减速

大部分时候,一个游戏人物的动作并非由单一一个CCActionInterval类型的动作构成,而是一串动作连起来,构成一个Sequence。用CCSequence::create(…)创建的对象都是CCFinteTimeAction类型的,CCSpeed并不适用。在CCSpeed类的说明里,明确指出”This action can’t be Sequenceable because it is not an CCIntervalAction”。那对于Sequence就束手无策了吗?非也。cocos2d-x引擎自带例子中,schedulerTest给我们展示了如何控制某个sprite的scheduler的timescale。废话少说,直接看代码。

在class TwoSchedulers中定义了两个customer的scheduler和两个CCActionManager。
CCScheduler *sched1;
CCScheduler *sched2;
CCActionManager *actionManager1;
CCActionManager *actionManager2;

在onEnter函数中,分别对两个sprite设置customer的ActionManager.
CCScheduler *defaultScheduler = CCDirector::sharedDirector()->getScheduler();
// Create a new scheduler, and link it to the main scheduler
sched1 = new CCScheduler();
defaultScheduler->scheduleUpdateForTarget(sched1, 0, false);
// Create a new ActionManager, and link it to the new scheudler
actionManager1 = new CCActionManager();
sched1->scheduleUpdateForTarget(actionManager1, 0, false);
// Replace the default ActionManager with the new one.
pSprite1->setActionManager(actionManager1);

通过以上的代码,就可以通过改变sched1的timescale来改变pSprite1的动作的快慢了。有了这种方法,那么就可以放弃CCSpeed的那种方法了。

转自:http://novacreo.com/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF%E4%BA%A4%E6%B5%81/cocos2d-x%E5%8A%A8%E7%94%BB%E5%8A%A0%E9%80%9F%E4%B8%8E%E5%87%8F%E9%80%9F/

Unity Android构建报错:compileSdk 35兼容性五层定位法 Android构建中的compileSdk是编译时API目标版本,其升级并非孤立操作,而是触发JDK、Android Gradle Plugin(AGP)、NDK、targetSdk与Unity引擎版本之间强耦合校验的起点。当出现'using a newer Android Gradle plugin to use compileSdk = 35'类报错,本质是代际技术栈错配——例如AGP 7.1.3不识别compileSdk 35所需Java 17语法,或NDK 21与AGP 7.4的ABI规范冲突。该问 阅读详情

相关推荐

Synopsys工具filter命令:从数据筛选到高效IC设计的实战指南

在数字集成电路设计流程中,数据筛选与查询是工程师处理海量网表、时序报告和设计约束的核心需求。其原理在于通过声明式查询语言,直接对设计对象(如单元、网络、路径)的属性进行逻辑判断与模式匹配,从而精准定位目标。这种技术价值在于将工程师从繁琐的过程式脚本循环中解放出来,大幅提升代码可读性与运行效率,直接调用工具内置的高性能查询引擎。在实际应用场景中,它广泛用于物理与时序联合分析、层次化模块操作、动态约束生成以及自动化报告生成。本文聚焦于Synopsys工具链中filter命令的高阶用法,深入解析其表达式语法、正则

weixin_28007513的博客 577

cocos2dx动画加速与减速

cocos2d-x动画加速与减速 动画是游戏的必然要素之一,在整个游戏过程中,又有着加速、减速动画的需求。以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速;当某个怪被冰冻后,移动速度减缓,而其他怪的移动速度不变。cocos2d-x引擎为我们提供了很强大的接口,下面就将我实验的过程复述一遍,也方便他人。 1)实现全局的加速、减速。 通过设置Scheduler的

尘墨 1542

RK3568 开发实战:手动构建 Linux 4.19 内核镜像与设备树优化

本文详细介绍了为RK3568开发板手动编译Linux 4.19内核的完整实战流程。从环境搭建、源码获取、内核配置,到设备树深度定制与优化,再到镜像打包与烧写,旨在帮助开发者脱离官方SDK依赖,实现对嵌入式Linux系统的完全掌控,提升硬件适配与性能优化能力。

weixin_29175469的博客 269

cocos2d-x 游戏卡帧效果

全局卡帧可这样设置:CCDirector:sharedDirector():getScheduler():setTimeScale(0.5)  //参数值为1表示正常,大于1加速播放,反之减速播放。 如果需要对一个单独的对象做卡帧,需要重新设置一个独立的计时器(CCDirector:sharedDirector():getScheduler()得到的是整个引擎公用的计时器)。 代码如下: C

whl_cxy的专栏 1272

【半桥LLC】半桥LLC谐振开环闭环软启动DCDC变换器的设计与仿真

本文详细分析了半桥LLC谐振DC-DC变换器的开环与闭环控制设计原理,重点探讨了软启动功能的实现。通过仿真验证,展示了开环与闭环情况下的电压输出差异以及系统效率的提升。该研究为提高DC-DC变换器性能提供了参考。

2401_84610415的博客 2594

数学建模更新10(蒙特卡罗模拟)

蒙特卡罗模拟一.目录二.引例1:布丰投针实验1.投针步骤2.思路3. 历史实验者二.蒙特卡罗模拟概述1.定义2.提出3.原理4.讨论三.应用实例1.三门问题【1】问题【2】代码2.模拟排队问题【1】题目【2】引入参数【3】总结题目信息【4】过程可视化【5】一些推导公式【6】代码3.有约束的非线性规划问题【1】问题的分类【2】例子【3】推导过程【4】代码 一.目录 二.引例1:布丰投针实验 1.投针步骤 步骤: 1:取一张白纸,在上面画出许多条间距为a的平行线 2:去一根长度为l的针,随机的向纸张上投掷n次

沉晨尘宸的博客 3039

Cocos 2dx 控制动画播放速度(实现减速.加速效果)

//创建及初始化 //获取全局时间管理者 Scheduler* pSchedule = Director::getInstance()->getScheduler(); //创建新的时间管理者 m_pSchedule = new Scheduler(); 将新的时间管理者交予全局时间管理者控制 pSchedule->scheduleUpdate(m_pSched...

shuhao97919的博客 2155

从硬件拆解到图像生成:一次搞懂MRI设备(主磁体、梯度线圈、射频系统)是如何协同工作的

本文深入解析MRI设备的三大核心系统——主磁体、梯度线圈和射频系统如何协同工作,实现从量子现象到诊断图像的转化。通过详细的技术参数和临床案例,揭示磁共振成像(MRI)在医疗图像处理中的精密工程原理和最新技术突破,帮助读者全面理解这一现代医学影像技术的运作机制。

weixin_33734785的博客 544

cocos2d-x动画加速与减速(转载)

 http://blog.itpub.net/14466241/viewspace-760677/

costa100的专栏 825

华为OD新系统机试真题 - 准备生日礼物(Py/Java/C/C++/Js/Go)

华为OD机试新系统真题 4.8【准备生日礼物】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【准备生日礼物】

qq_45776114的博客 1478

Python爬虫实战:利用Playwright与异步技术高效抓取链家十万级二手房数据

在开始编写代码之前,我们首先需要为项目选择合适的技术栈。1. 传统方案:Requests + BeautifulSoup优点: 简单、轻量、学习成本低。直接发送HTTP请求获取HTML,然后解析。缺点: 对于大量由JavaScript动态渲染的内容无能为力。现代网站(包括链家)大量使用JS来加载数据和实现交互,简单的HTTP请求无法获取到完整的页面内容。此外,容易被基于IP或请求头特征的反爬机制拦截。2. 进阶方案:Selenium优点。

2201_76125261的博客 889

cocos2dx 对全部动作或单个动作速度的改变

感谢点评与关注,欢迎转载与分享。勤奋努力,持之以恒! 一、对全部CCActionInterval动作进行加速或减速,这个很简单只要一句代码就可以。 CCDirector::sharedDirector()->getScheduler()->setTimeScale(2);//以目前2倍速度播放 CCDirector::sharedDirector()-&gt...

445822357 422

【ComfyUI专栏】安装Triton组件

Triton是一款支持大模型推理的深度学习加速组件,最初仅支持Linux平台,现已通过开源社区适配Windows系统。针对SageAttention的安装,建议使用3.2.0Post10版本(该版本提供封装好的安装包,更高版本仅有源码)。用户可通过GitHub获取安装资源,或直接使用pip命令"pip install triton-windows"进行安装。安装时需注意:1)在虚拟环境中操作;2)使用管理员权限。相关资源链接已在文中提供。

技术与管理的平衡木- 1858

Cocos2d-x动画加速与减速

1)实现全局的加速、减速。 通过设置Scheduler的timeScale,可以实现全局的加、减速。代码非常简单: CCScheduler* pScheduler = CCDirector::sharedDirector()->getScheduler(); pScheduler->setTimeScale(2.0f); //实现加速效果 pScheduler->setTimeSc

playddt的专栏 1357

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

cocos2d-x 动画加速与减速

转自:http://novacreo.com/%E7%A8%8B%E5%BA%8F%E7%BB%84/cocos2d-x%E5%8A%A8%E7%94%BB%E5%8A%A0%E9%80%9F%E4%B8%8E%E5%87%8F%E9%80%9F/ 动画是游戏的必然要素之一,在整个游戏过程中,又有着加速、减速动画的需求。以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速

学无止境! 无休无止! 618

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【转】cocos2d-x动画加速与减速

移步原帖传送门:cocos2d-x动画加速与减速 动画是游戏的必然要素之一,在整个游戏过程中,又有着加速、减速动画的需求。以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速;当某个怪被冰冻后,移动速度减缓,而其他怪的移动速度不变。cocos2d-x引擎为我们提供了很强大的接口,下面就将我实验的过程复述一遍,也方便他人。 1)实现全局的加速、减速。 通过设置Schedul...

weixin_33828101的博客 86

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
下一篇: cocos2d-x 瞬时动作/延时动作
tspangle
博客等级 码龄19年 81粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值