Cocos2d-x -自己定义动作 圆周运动


原文地址: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秒。

转载于:https://www.cnblogs.com/xfgnongmin/p/10666722.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值