Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 相机移动时Three.js渲染循环冻结_Javascript_Three.js - Fatal编程技术网

Javascript 相机移动时Three.js渲染循环冻结

Javascript 相机移动时Three.js渲染循环冻结,javascript,three.js,Javascript,Three.js,这是我的代码:(我使用THREEx,keyboardstate.js作为输入btw) camera.forward=new THREE.Vector3(0,0,-1).applyMatrix4(camera.matrixWorld).sub(camera.position.normalize(); camera.right=new THREE.Vector3(-1,0,0).applyMatrix4(camera.matrixWorld).sub(camera.position.normaliz

这是我的代码:(我使用THREEx,keyboardstate.js作为输入btw)

camera.forward=new THREE.Vector3(0,0,-1).applyMatrix4(camera.matrixWorld).sub(camera.position.normalize();
camera.right=new THREE.Vector3(-1,0,0).applyMatrix4(camera.matrixWorld).sub(camera.position.normalize();
如果(按键按下('W')){
camera.position.add(camera.forward.multilyscalar(2.multilyscalar)(clock.getDelta());
}
如果(按键按下('S')){
camera.position.add(camera.forward.subVectors(新的三个.Vector3(0,0,1),camera.forward).normalize().multilyscalar(2).multilyscalar(clock.getDelta());
}
如果(按下键('Q')){
camera.rotation.y+=0.3*clock.getDelta();
}
如果(按下键('E')){
camera.rotation.y-=0.3*clock.getDelta();
}
if(light.position.x>=3){
负=真;

}else if(light.position.x)很可能是因为该值被限制在最大或最小范围内,您可以检查旋转和灯光位置的设置范围吗?对于相机,没有旋转限制。对于灯光,x轴上的限制为6,如果您阅读代码,它会显示这一点。
camera.forward = new THREE.Vector3(0, 0, -1).applyMatrix4(camera.matrixWorld).sub(camera.position).normalize();
camera.right = new THREE.Vector3(-1, 0, 0).applyMatrix4(camera.matrixWorld).sub(camera.position).normalize();

if (keys.pressed('W')) {
    camera.position.add(camera.forward.multiplyScalar(2).multiplyScalar(clock.getDelta())); 
}
if (keys.pressed('S')) {
    camera.position.add(camera.forward.subVectors(new THREE.Vector3(0, 0, 1), camera.forward).normalize().multiplyScalar(2).multiplyScalar(clock.getDelta()));  
}
if (keys.pressed('Q')) {
    camera.rotation.y += 0.3 * clock.getDelta();
}
if (keys.pressed('E')) {
    camera.rotation.y -= 0.3 * clock.getDelta();
}

if (light.position.x >= 3) {
    negative = true;
} else if (light.position.x <= -3) {
    negative = false;
}

if (negative) {
    light.position.x -= 0.5 * clock.getDelta();
} else {
    light.position.x += 0.5 * clock.getDelta();
}