API はトリッキーで文書化されていますが (imho)、この動作を実現するための適切なポイントを見つけることができました。トゥイーンがどのように機能し、どこに変更を適用するかを理解するのに 2 日かかりました。
トゥイーンが作成されると、それにイージング関数を渡すことができます。必要なイージングは Y 軸のみ (跳ねる動き) に適用され、右への動きは X 軸のみに適用されます。したがって、2 つの個別のトゥイーンを使用する必要があります。
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 の間) を受け取ります。