求教怎么进行运动补间?
c++吧
全部回复
仅看楼主
level 13
⑨chu 楼主
比如对象A目前在x=0处,现要求A在t=10的时候到达x=50处
给出一个函数f(△t),要求输入一个时间间隔△t计算对象由当前位置到达下一个位置的坐标
毫无疑问一种方法就是线性递增到目标值,类似于for(i=0;i<50;i++)这种情况
给出代码:
inline float LinearFunc(
float Start, // 当前坐标
float End, // 目的坐标
float Len, // 当前坐标所处的位置到目标坐标剩余的时间
float Step) // 要计算下一个位置时经过的时间△t
{
float k = (End - Start)/Len; // 计算斜率
float tRet = Start + Step * k; // 计算结果
if(k>0) // 时间过长时的防越界处理
return tRet>End ? End : tRet;
else
return tRet<End ? End : tRet;
}
但是现在我想增加效果,做到先快后慢 或者 先慢后快的效果
输入的参数最好保持不变
要怎么办呢?

2012年08月09日 12点08分 1
level 12
解二次方程
顺,求兰州果照
2012年08月09日 12点08分 2
(t,value) 。。三个点可以确定一个方程,现在只有两个点,而且前提不保存初始位置,也就是一个点在动。。。
2012年08月09日 12点08分
level 12
看到前一半我tm还以为你终于问了个我能回答的问题...
2012年08月09日 12点08分 3
[揉脸]
2012年08月09日 12点08分
回复 ⑨chu :[拍砖]
2012年08月09日 12点08分
level 13
⑨chu 楼主
好吧 游戏编程精粹里面似乎有提到 我去看看
2012年08月09日 12点08分 4
level 13
⑨chu 楼主
果然还是要保存初始状态么。。算了 就这样吧
2012年08月09日 12点08分 5
1