cocos2dx之CCActionEase,CCEaseExponentialIn等变速Action

虽然使用CCSpeed能够改变动作的速度,然而它只能按比例改变目标动作的速度。如果我们要实现动作由快到慢、速度随时间改变的变速运动,需要不停地修改它的speed属性才能实现,显然这是一个很烦琐的方法。下面将要介绍的CCActionEase系列动作通过使用内置的多种自动速度变化来解决这一问题。
CCActionEase系列包含15个动作,它们可以被概括为5类动作:指数缓冲、Sine缓冲、弹性缓冲、跳跃缓冲和回震缓冲。每一类动作都有3个不同时期的变换:In、Out和InOut。下面使用时间变换图像表示每组CCActionEase动作的作用效果,其中横坐标表示实际动画时间,纵坐标表示变换后的动画时间。因此,线性动作的图像应该是一条自左下角到右上角的直线

例子代码:

        CCEaseBackIn* backIn  = CCEaseBackIn::create(dynamic_cast<CCActionInterval *>(moveTo1) );
        sprite1->runAction(backIn);


我们来解释一下变速运动的几个类:

CCActionEase
这个类是所有的ease类的基类,它继承了
class CC_DLL CCActionEase : public CCActionInterval
{
public:
    virtual ~CCActionEase(void);

    /** initializes the action */
    bool initWithAction(CCActionInterval *pAction);

    virtual CCObject* copyWithZone(CCZone* pZone);
    virtual void startWithTarget(CCNode *pTarget);
    virtual void stop(void);
    virtual void update(float time);
    virtual CCActionInterval* reverse(void);

public:
    /** creates the action 
    @deprecated: This interface will be deprecated sooner or later.
    */
    CC_DEPRECATED_ATTRIBUTE static CCActionEase* actionWithAction(CCActionInterval *pAction);

    /** creates the action */
    static CCActionEase* create(CCActionInterval *pAction);

protected:
    CCActionInterval *m_pOther;
};

它作为基类,运动变速轨迹是有慢至快运动。

CCEaseRateAction它是CCActionEase的派生类,而CCEaseRateAction,它是按变速运动的比例运动。它的三个派生类

CCEaseIn,CCEaseout, CCEaseInOut

CCEaseIn由慢至快,按照参数比例运动。

CCEaseOut由快至慢。

CCEaseInOut,是前两者的综合。


CCEaseExponentialIn,CCEaseExponentialOut, CCEaseExponentialInOut,的基类是CCActionEase

CCEaseExponentialIn,由慢至快,没有比例参数

CCEaseExponentialOut由快至慢,开始忽然加速

CCEaseExponentialInOut,前两者的综合


CCEaseSineIn, CCEaseSineout, CCEaseSineInOut基类是CCActionEase,它是弹性缓冲。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值