cc.jumpTo或者cc.jumpBy有BUG吧

onLoad() {
    this.node.parent.on(cc.Node.EventType.TOUCH_END, this._click, this);
}

start() {

}

update(dt) {
    console.log(this.node.y);
}

private _click() {
    this.node.runAction(cc.jumpTo(1, this.node.x + 200, -320, 100, 1));
}

启动时node的y在0,只要跳过去的终点的y低于当前node的y值,height就根本不会达到想要的高度,看api,应该是跳跃的高度才对啊!

官方人呢?

-320才是你最终要到达的高度,height是你过去的过程中跳跃的高度而不是你最终落点的高度

我知道,最后是落在-320,但是过程中,没有达到height100的高度

var frac = dt * this._jumps % 1.0;
var y = this._height * 4 * frac * (1 - frac);
y += this._delta.y * dt;
看了下jumpBy的update,所以这相当于在起点原地跳跃与从起点到终点匀速移动这俩动作相叠加。

1赞

假设时间为1秒,高度0跳往高度0的函数如下


高度0跳往高度-320的函数如下

1赞

我觉得你可以考虑使用贝塞尔曲线了,不过要指定最高点,也不容易~~~

1赞

大佬如何实现,jumpTo到不同的点,保持速度相同

根据距离算时间吧

大哥牛逼,三年以后还能把话题续上~

这要是题主回复那就绝了