我想从点y1到点y2以某种形式的减速来动画一个精灵。当它到达点y2时,物体的速度将为0,因此它将完全停止。在更新循环中实现更容易
我知道两点,我知道对象的起始速度。 动画时间对我来说并不重要。如果需要,我可以决定。
例如:每秒y1 = 0
,y2 = 400
,v0 = 250
像素(=启动速度)
我读到缓动函数,但我不明白我怎么真正实现它在 更新循环。 这里是我的更新循环代码,应该以某种方式实现缓动功能。
-(void)onTimerTick{
double currentTime = CFAbsoluteTimeGetCurrent() ;
float timeDelta = self.lastUpdateTime - currentTime;
self.lastUpdateTime = currentTime;
float *pixelsToMove = ???? // here needs to be some formula using v0, timeDelta, y2, y1
sprite.y += pixelsToMove;
}
为什么,为什么,你为什么不使用Core Animation?为什么重新发明轮子? – 2013-03-19 16:43:27
因为,因为我在此更新循环中执行其他操作和验证。 – 2013-03-19 16:50:13
我不知道这是否是一个有效的论证,或者我只是想解释Bézier曲线:D – 2013-03-19 18:39:54