写在前面
虽然看起来好像是物体自身在旋转,但确实是相机在围绕场景旋转。
另外,用简单的三个变量实现了重力模拟。
相机旋转方法
var theta=0;
var render=function () {
requestAnimationFrame(render);
controls.speedY+=controls.gravity;
controls.posY+=controls.speedY;
sphere.position.y=controls.posY;
theta+=0.02;
camera.rotation.y=theta;
camera.position.set(5*Math.sin(theta),0,5*Math.cos(theta));
if(sphere.position.y<=-3){
controls.speedY*=-1.03;
};
renderer.render(scene,camera);
};
定义一个角度变量theta,目的是为了将它传给三角函数用作其参数,旋转半径通过三角函数分解后即是在两个坐标轴上的具体数值,赋给相机即可。