0
我試圖通過拖動&拖放實現WebGL項目中的攝像機移動。我已經通過計算事件中之前位置的差異,然後將此值添加到當前旋轉水平。WebGL中的滑動拖放方向
這裏是一段代碼這是做這項工作:
function animate()
{
// drag and drop part
/*var spdx = 0, spdy = 0;
spdy = (HEIGHT/2 + difference_y)/400;
spdx = (WIDTH/2 + difference_x)/400;*/
if(mouseDown)
{
camera.rotation.x += difference_x/200;
//camera.rotation.y += difference_y/200;
}
requestAnimationFrame(animate);
renderer.shadowMapEnabled = true;
renderer.shadowMapType = THREE.PCFSoftShadowMap;
object.rotation.x += 0.005;
object.rotation.y += 0.01;
// Render the scene.
renderer.render(scene, camera);
//controls.update();
}
function onDocumentMouseMove(event){
mouseX = event.clientX;
mouseY = event.clientY;
difference_x = mouseX - last_position_x;
difference_y = mouseY - last_position_y;
last_position_x = mouseX;
last_position_y = mouseY;
}
它專門在動畫部分()函數到requestAnimationFrame(動畫)。變量mouseDown在ouseDown事件上設置爲true,並在mouseUp時重置爲false。整個代碼,因爲我有它在文件中,你可以找到here(儘管它並不在撥弄工作)
要顯示的參考妥善我的方向之一禁用移動並上載here,這樣你就可以正確測試奇怪的行爲。
任何人都知道問題出在哪裏?謝謝。