gpt4 book ai didi

javascript - Tween.js |即使我循环播放,我的补间也不会更新

转载 作者:行者123 更新时间:2023-11-28 04:18:38 26 4
gpt4 key购买 nike

所以,我正在创建一个游戏,其中我有一艘船,上面有一把可以发射子弹的枪。

我希望当我射击时,船的枪会反弹,这样看起来枪确实射出了子弹。到目前为止一切都很好,枪只是相对于 body 移动,到目前为止没有任何东西陷入无限循环。

我的船是由我编写的完美运行的构造函数制成的,因此为了创建补间,我没有在构造函数中创建我无法重用的变量,而是创建了对象的补间实际属性。

代码如下所示:

this.gunTweenPosition = {y : unit / -1.52 + (gunLength * unit / -4)};
this.gunTweenTarget = {y : av.gunTweenPosition.y + unit / 6};
this.gunTween1 = new TWEEN.Tween(av.gunTweenPosition.y).to(av.gunTweenTarget.y, 1000);
this.gunTween2 = new TWEEN.Tween(av.gunTweenTarget.y).to(av.gunTweenPosition.y, 1000);
this.gunTween1.easing(TWEEN.Easing.Cubic.In);
this.gunTween2.easing(TWEEN.Easing.Cubic.Out);
this.gunTween1.onUpdate(function() {
this.gun.position.y = av.gunTweenPosition.y;
});
this.gunTween2.onUpdate(function() {
this.gun.position.y = av.gunTweenTarget.y;
});

“this”是我们正在构造的对象,为了启动推拉枪的函数,我有一个我刚刚调用的函数:

car avatar = this;
var number = 0;
function loopTweenUpdating() {
number++;
if (number < 20) {
avatar.gunTween1.update();
avatar.gunTween1.onComplete(function() {
avatar.gunTween2.update();
});
setTimeout(loopTweenUpdating, 20);
}
}

我看不出问题出在哪里。

点击THIS链接查看完整代码。

有什么想法吗?

最佳答案

看起来您缺少启动补间。

this.gunTween1.start();

关于javascript - Tween.js |即使我循环播放,我的补间也不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com