AlloyTouch 与 three.js 3D 模型交互

发布于 2020-06-07 11:06:03 字数 2077 浏览 1317 评论 0

如你所见,上面的 cube 的旋转、加速、减速停止都是通过 AlloyTouch 去实现的。

代码

<script src="asset/three.js"></script>
<script src="../../alloy_touch.js"></script>

<script>
  var camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );
  camera.position.z = 500;

  var scene = new THREE.Scene();

  var texture = new THREE.TextureLoader().load( 'asset/crate.gif' );
	//几何体
  var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 );
  //材质
  var material = new THREE.MeshBasicMaterial( { map: texture } );

  var mesh = new THREE.Mesh( geometry, material );
  //添加到舞台
  scene.add( mesh );

  var renderer = new THREE.WebGLRenderer();
  renderer.setPixelRatio( window.devicePixelRatio );
  renderer.setSize( window.innerWidth, window.innerHeight );
  document.body.appendChild( renderer.domElement );

  function animate() {
    requestAnimationFrame( animate );
    renderer.render( scene, camera );
  }
  
  animate();

  new AlloyTouch({
    touch: document,	//触摸整个文档
    vertical: false,			//监听横向触摸
    target: mesh.rotation,	//运动 mesh.rotation
    property: "y",				//被运动的属性 y
    factor: 0.08,				//运动期间的摩擦力
    moveFactor: 0.2		//拖拽期间的摩擦力
  })
</script>

factor需要自己不断去调试出最佳的值,让松手之后的惯性运动的速率和时间达到最佳的效果。 moveFactor需要自己不断去调试出最佳的值,就是让横向拖拽的距离映射到旋转的角度上达到最跟手的效果。

如果,不需要惯性运动。比如像王者荣耀里的任务旋转就是没有惯性的,手指离开屏幕就会立马停止运动。

你只需要在new AlloyTouch设置inertia为false便可。

无惯性代码

<script src="asset/three.js"></script>
<script src="../../alloy_touch.js"></script>
<script>
  animate();

  new AlloyTouch({
    touch: document,	//触摸整个文档
    vertical: false,			//监听横向触摸
    target: mesh.rotation,	//运动 mesh.rotation
    property: "y",				//被运动的属性 y
    factor: 0.08,				//运动期间的摩擦力
    moveFactor: 0.2 ,		//拖拽期间的摩擦力
    inertia: false		//禁止惯性运动
  })
</script>

Github地址:https://github.com/AlloyTeam/AlloyTouch

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文