软艺坊 2024-05-18 14:55 采纳率: 80%
浏览 43
已结题

@tweenjs/tween.js 定义往复运动动画偶尔会出现不正确的闪动

@tweenjs/tween.js 动画库,定义的上下往复运动动画会在不正确的位置闪动,在(0,60,0)和(0,80,0),这个闪动要怎么解决?

createCone() {
    // 四棱锥
    const geometry = new THREE.ConeGeometry(10, 15, 4);
    const material = new THREE.MeshBasicMaterial({ color: 0xffff00 });
    const cone = new THREE.Mesh(geometry, material);

    // 外线框
    let lineMaterial = new THREE.LineBasicMaterial({ color: 0x0000ff });
    let edgesGeometry = new THREE.EdgesGeometry(geometry);
    let line = new THREE.LineSegments(edgesGeometry, lineMaterial);
    line.scale.copy(cone.scale);
    line.position.copy(cone.position);
    line.rotation.copy(cone.rotation);

    cone.add(line);
    cone.position.set(0, 60, 0);
    cone.rotation.x = Math.PI;
    this.cone = cone;
    this.scene.add(cone);
    // 定义动画
    new TWEEN.Tween(cone.position)
      .to({ x: 0, y: 80, z: 0, }, 1000)
      .repeat(Infinity)
      .yoyo(true)
      .easing(TWEEN.Easing.Cubic.InOut)
      .start();

    new TWEEN.Tween(cone.rotation)
      .to({ x: cone.rotation.x, y: Math.PI*2, z: cone.rotation.z, }, 2000)
      .repeat(Infinity)
      .start();
  }

```javascript

function animate() {
   
    TWEEN.update();
    stats.update();
    controls.update();
    camera.updateMatrixWorld();
    renderer.render(scene, camera);
    // effectComposer.render();
    requestAnimationFrame(animate);
  }

```

  • 写回答

4条回答 默认 最新

  • 软艺坊 2024-05-18 15:21
    关注

    tween继续尝试了一下,还是有闪烁,换gsap没这个问题了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月18日