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

时间:2017-08-11 03:18:42

标签: javascript object tweenjs

所以,我正在制作一个游戏,其中我有一把枪射击子弹的船。

当我开枪的时候,我希望船上的枪能够反弹,所以看起来枪实际上射了子弹。到目前为止一切都很好,枪只相对于身体移动,到目前为止没有任何东西被卡在无限循环中。

我的船是由我编码完美的构造函数构成的,所以要创建补间,而不是在我无法重用的构造函数中创建变量,我创建了补间对象的实际属性。

这就是代码的样子:

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;
});

'这'是我们正在构建的对象, 并启动推拉枪的功能,我只需要调用此功能:

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链接查看完整代码。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您似乎缺少启动补间的功能。

this.gunTween1.start();