Cocos2D For IPhone中的慢动作

本文介绍如何在Cocos2D中实现慢动作特效,通过调整CCScheduler的timeScale变量来影响游戏内的更新速率,使游戏效果呈现出慢动作状态。此方法适用于所有与时间相关的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

write by 九天雁翎(JTianLing) -- blog.youkuaiyun.com/vagrxie

讨论新闻组及文件

慢动作是游戏中常用的特效手法,感觉Cocos2D这样完善的引擎应该原生支持才对,我在网上搜索了一下,竟然没有搜到,(不知道英文是不是该搜索Slow Action,但是原来公司的项目都这样叫的)。
于是自己实现了一下,在自己项目的最底层的update中,添加一个slowAction的scale值,设定每次将update的参数ts传进来后,立刻乘以此scale值。只要原来的代码都是时间相关的,可以看到慢动作效果了。刚开始都还好,但是Cocos2D的粒子效果不吃这套,由于粒子系统不受我控制,我没法强行改变其值。本来还想通过全局变量强行改cocos2D的源代码的,在粒子系统的step函数中下了断点,然后通过callback stack中看到了sharedDirector调用了sharedScheduler的tick来实现cocos2d内部的update,并且很惊奇的发现了CCScheduler的timeScale变量。

于是,本文真正的非废话就下面一句:
[[CCScheduler sharedScheduler] setTimeScale:倍率];

同时,这也得原来的代码都是时间相关才能实现的,假如都是按帧走的,那么就哭去吧。。。。。。。。。。。。。所以说,很久很久以前,大家就开始认为时间相关的代码优于帧相关的代码不是没有道理的。。。。。。。。。。





原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- blog.youkuaiyun.com/vagrxie




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值