【发布时间】:2017-10-21 11:50:33
【问题描述】:
我试图在三个以鼠标移动为中心的 js 中移动相机。一切正常,我正在使用
function onMouseMove(event) {
mousePosition.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mousePosition.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}
从 -1 到 1 的位置。我现在要添加的是相机无法进入位置为 0/0 的圆圈(浏览器屏幕的中间)。很难解释,但我想在线上移动相机,这个圆的半径直到 x 或 y 值超出 -0.5 到 0.5 的范围。这是相机的更新方式:
camOffset.x += (mousePosition.x - camOffset.x) * 0.1;
camOffset.y += (mousePosition.y - camOffset.y) * 0.1;
camera.position.x += camOffset.x * 30;
camera.position.y += camOffset.y * 30;
希望你能帮助我!谢谢!
【问题讨论】:
-
所以如果鼠标位置的幅度小于0.5,你希望相机位置与鼠标位置的方向相同,但幅度为0.5,对吗?
-
是的,你明白我的意思!我必须补充一点,相机是在一条样条线上移动的,它当然正好碰到了相机的中心,这会产生一种奇怪的外观效果。这就是为什么我试图用圆圈在它周围留出一些空间。
-
@Beta 你知道可靠的解决方案吗?