In some cases, we might want to use animate() to supply keyframe data so that pixel offsets and transform changes happen on either the first or last frame of the keyframe.
Currently, we can acheive this by breaking up the keyframe into two animate calls:
animate(src,time=5-world.tick_lag)
animate(pixel_z=32,time=world.tick_lag)
But for obvious reasons, this isn't ideal, as two different clients may have different tick_lag values. It would be better to supply an easing value that indicates that the value should not be interpolated, but rather instantly change at either the first or last frame of the animate() step, as though it were a keyframe:
animate(src,time=5,easing=JUMP_EASING|EASE_OUT) //the jump will happen at the last frame in the duration
animate(src,time=5,easing=JUMP_EASING|EASE_IN) //the jump will happen at the first frame and then there will be a 5 decisecond delay before the next step