TweenJS基础上的三个JS立方体
Tween JS basics on three JS cube
我是TweenJS的新手,正在尝试使用Tween制作一个向右移动的简单动画。
以下是我在init函数中的代码(我使用的是Three JS):
var geometry = new THREE.CylinderGeometry( 200,200, 200, 4, 0 );
var material = new THREE.MeshPhongMaterial( { ambient: 0xf0f0f0, color: 0x006699, specular: 0x006699, shininess: 60, shading: THREE.FlatShading } );
var mesh = new THREE.Mesh( geometry, material );
mesh.position.x = 0;
mesh.position.y = 0;
mesh.position.z = 0;
mesh.updateMatrix();
mesh.matrixAutoUpdate = false;
scene.add( mesh );
var tween = new TWEEN.Tween( { x: 0, y: 0 } )
.to( { x: 400 }, 2000 )
.easing( TWEEN.Easing.Elastic.InOut )
.onUpdate( function () {
mesh.position.x = Math.round( this.x );
} ).start();
还有我的动画功能:
requestAnimationFrame(animate);
renderer.render(scene, camera);
TWEEN.update();
update();
立方体在那里,但青少年不工作。有什么我想念的吗?
以下是我对场景所做的操作。
-
创建一个单独的render()函数
-
将TWEEN代码放入可以调用的函数中。您希望在此函数开始时删除所有TWEEN。我不完全确定为什么,但我从教程代码中学到了这一点。
-
在TWEEN函数中,在更新时调用render函数。
-
通过不间断的动画循环调用动画中的TWEEN.update。注意:每次更新TWEEN时都会调用render()。
以下是骨架代码。检查这是否适用于您的程序:
//TWEEN function
function moveObject( ) {
TWEEN.removeAll();
new TWEEN.Tween( { x: 0, y: 0 } )
.to( { x: 400 }, 2000 )
.easing( TWEEN.Easing.Elastic.InOut )
.onUpdate( render )
.start();
};
//NON-STOP animation loop
function animation(){
requestAnimationFrame(animate);
TWEEN.update();
}
//Render function
function render(){
renderer.render(scene, camera);
}
希望能有所帮助。
相关文章:
- 灯光问题(使用三个.js)
- 在三个.js中创建球体(例如地球)的磁力线
- 三个js键盘旋转
- 加载模型与三个.js
- 如何在导入的 Collada 模型上使用 EdgesHelper 在三个.js.
- 三个JS框几何体,渲染警告:渲染计数或素数为0
- 我需要三个.js的来源
- 可点击的三个JS凸对象(点击一次即可显示图像)
- 带有三个.js的透明背景
- 使用三个js加载三维模型示例
- 在桌面上向下滚动三个js动画,而不是在手机上
- 将一行的长度限制在三个js中
- 如何在三个js上更新Trackball控件
- 由于相机位置的原因,无法在场景中显示三个.js元素
- 三个js阴影
- EffectComposer和具有三个.js的alpha通道
- 如何点击并滑入三个js立方体
- 三个js立方体是黑色的..不是红色
- 有三个.js的简单太阳系
- 将三个.js示例的webgl_loader_obj_mtl.html集成到 WebForm ASP.NET(mtlLoa