您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx3.2 学习笔记(3)--ActionsEaseTest(2)

2014-08-14 15:45 323 查看
看我第一个变速动作,看第二个发现基本一样,就构造的类有点不一样。当时有点迷茫,看不出什么情况。

只能去看各个类的区别了,都是继承ActionInterval类,看了几个类也没发现异样,还是没搞懂。 

只能从rate这个数据下手了,不同的类,传同一个值效果不一样。 仔细看才发现 原来是update函数处理了这个数据

终于找到

void EaseInOut::update(float time)

{

    _inner->update(tweenfunc::easeInOut(time, _rate));

}

updatre函数都调用了tweenfunc对应的方法,走进去看看

// Sine Ease

float sineEaseIn(float time)

{

    return -1 * cosf(time * (float)M_PI_2) + 1;

}

    

float sineEaseOut(float time)

{

    return sinf(time * (float)M_PI_2);

}

    

float sineEaseInOut(float time)

{

    return -0.5f * (cosf((float)M_PI * time) - 1);

}

一目了然了,都是处理了更新时的time值,帧率不变,每次更新的时候处理下time,再传进去更新,就可以间接的修改帧率了,也就表现出来动作的快慢了。

具体每个类对应怎么实现具体效果,就是数学问题了,暂时不细看了。ActionsEaseTest也就可以先跳过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2dx 游戏