尽管 API 很棘手且文档齐全(恕我直言),但我设法找到了实现此行为的好点。我花了 2 天的时间才弄清楚补间是如何工作的以及在哪里应用我的更改。
创建补间时,您可以将缓动函数传递给它。我想要的缓动仅适用于 Y 轴(弹跳运动),向右移动仅适用于 X 轴。因此我必须使用两个单独的 Tweens:
function vanHalen (v) { // Might as well jump
game.debug.spriteInfo(lion, 32, 32);
return Math.sin(v * Math.PI) * 1;
};
function goLion() {
var move = game.add.tween(lion);
var jump = game.add.tween(lion);
// "Move" is a linear easing function that will move the sprite to (1000,y). It takes the Lion 2 Seconds to get there.
move.to({x: 1000}, 2000);
// The Jump is a function that works on the y axis, uses a customized easing function to "bounce".
jump.to({y: 30}, 500, vanHalen, true, 0, Number.MAX_VALUE, 0);
move.start();
};
跳跃自动开始,永远不会结束。当向右移动结束时,狮子会继续在一个地方弹跳。
缓动函数接收一个进度值(介于 0 和 1 之间),它指示补间移动了多远(以百分比表示)。