libgdx actions 和Interpolation分析

这节来分析actions和Interpolation,这两个基本算是并存的去辅助actor来完成复杂的轨迹。actions来作用actor来实现actor的动作,比如向左移动,旋转360度或者平移且旋转。
Interpolation的作用是操作actions,是加在动作之上的,比如一个动作为1s从0.0坐标移动到100.100坐标。那么动作执行会是一个匀速轨迹,但是有时我们需要的是加速运动或者减速或者更复杂的运动方式,此时我们就需要Interpolation来对匀速进行影响,实现快速奔跑,缓冲轨迹或者其他行为。
之间的关系为:
actor.addaction
action.setInterpolation


我们从MoveToAction动作里面来看看Interpolation如何影响动作的:
继承TemporalAction,查看act接口:
if (!began) {
begin();
began = true;
}
time += delta;
complete = time >= duration;
float percent;
if (complete)
percent = 1;
else {
percent = time / duration;
if (interpolation != null) percent = interpolation.apply(percent);
}
update(reverse ? 1 - percent : percent);
if (complete) end();
return complete;


我们看到时间计算为percent = time / duration;算出时间百分比,然后如果有interpolation,则对计算值重新计算percent = interpolation.apply(percent),然后更新位置。
interpolation 叫什么呢?叫插值,因此便是两点间进行对默认的线性轨迹进行作用,来影响最终的actor的运动速率,这个就是这三个的关系。
Interpolation.java里面有一些常用的插值算法,我们可以直接使用,再者gdx的测试代码里面,是实现了这里的这些效果的,可以去看看。
这节算是分析完了,我也是用着看着,瞎写着,希望能帮到一些人吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕业设计(源码都能跑起来)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值