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也就可以先跳过了。
只能去看各个类的区别了,都是继承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也就可以先跳过了。
相关文章推荐
- cocos2dx3.2 学习笔记(3)--ActionsEaseTest(1)
- cocos2dx3.2 学习笔记(2)--ActionManagerTest(3)
- cocos2dx3.2 学习笔记(2)--ActionManagerTest
- cocos2dx3.2 学习笔记(2)--ActionManagerTest
- cocos2dx3.2 学习笔记(2)--ActionManagerTest(2)
- cocos2dx3.2 学习笔记(4)--ProgressActionsTest(1)
- cocos2dx3.2学习笔记之Director(导演类)
- Cocos2dx 3.2 横版过关游戏Brave学习笔记(四)
- cocos2dx3.2 学习笔记(1)--CppTest
- cocos2dx3.2学习笔记1
- Cocos2dx 3.2 横版过关游戏Brave学习笔记(三)
- Cocos2dx 3.2 横版过关游戏Brave学习笔记(五)
- cocos2dx3.2 学习笔记(3)--ActionsTest(1)
- cocos2dx3.2 学习笔记(5)--LabelTest(1)
- cocos2dx3.2学习笔记1——环境搭建
- 从头开始学cocos2dx笔记之八(ActionTest)(一)
- Cocos2dx 3.2 横版过关游戏Brave学习笔记(二)
- Cocos2d-x 3.2 学习笔记(八)Action
- Cocos2D3.x学习笔记之ActionManagerTest
- Cocos2dx 3.2 横版过关游戏Brave学习笔记(七)