Cocos2d-x教程(16)-自定义动作 圆周运动

欢迎加入 Cocos2d-x 交流群:193411763
转载时请注明原文地址:http://blog.csdn.net/u012945598/article/details/17605409

在之前的文章中我们曾经讲过Cocos2d-x中的各种动作的使用方法,我们先来简单的回顾一下与动作相关的内容
1.Cocos2d-x中的所有动作类的文件都位于 Cocos2d-x-2.2.1/cocos2dx/actions 目录下
2.CCAction是所有动作类的基类,所有的动作类都派生自CCAction
3.CCFiniteTimeAction类中定义了有限时间内可以完成的动作,CCAction的大多数实现类都派生自CCFiniteTimeAction,在CCFiniteTimeAction中为我们提供了reverse方法,该方法可以获得一个与原动作相反的动作(并不是所有动作都有逆动作)
4.CCFiniteTimeAction派生出了两个类,分别是CCActionInstant(瞬时动作),持续性动作(CCActionInterval)
5.CCActionInterval 动作中包含了 CCMoveTo/By CCJumpTo/By CCBezierTo/By CCScaleTo/By CCRotateTo/By等等
而我们今天所举的例子——圆周运动,便是属于持续性动作的一种,下面我们来对该动作进行一个封装。

首先我们需要知道圆周运动的原理,任何一种图形,都可以看做是由多边形构成的,一个圆,我们可以将它拆分成若干个点,可以是100个,也可以是200个,所谓的圆周运动,就是在每帧刷新的过程中,求出下一帧时节点所处的坐标,而这个坐标,就是我们的200个点中的其中一个。
也就是说,圆周运动实际上就是把一个圆形分成了若干个点坐标,让节点在这些坐标上不停的切换,我们所需要做的,就是求出这些点的坐标。下面我们来看一下坐标是如何求出的:

如上图所示,圆上任意一点P的坐标,都能够通过半径r以及夹角a获得。

下面我们来分装一个圆周运动的类:在规定时间内,让一个节点在指定半径内围绕一个圆心运动360度。
创建一个CCCircleBy类,继承于CCActionInterval(持续性动作),.h文件代码如下:

.cpp文件代码如下:



完成上述操作后,我们就可以使用CCCircleBy的create()方法去创建一个动作了:



运行项目,我们会发现精灵围绕以(480,320)为圆心做匀速圆周运动,半径为50,时间为2秒。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值