我正在尝试这个:
controls = new THREE.FirstPersonControls(camera);
controls.movementSpeed = 1000; controls.lookSpeed = 0.125; controls.lookVertical = true;
它不起作用, 从here我发现我需要用时间增量更新控件:
var clock = new THREE.Clock();
controls.update(clock.getDelta());
但undefined is not a function
THREE.Clock()
您能指点我使用FirstPersonControls进行演示/教程,或者只是告诉我哪里错了?
谢谢!
答案 0 :(得分:5)
您是否尝试过简单地调用controls.update();
(通过delta)?
我刚尝试通过复制misc_sound.html示例中的一些代码来使用该类。 所以在init():
controls = new THREE.FirstPersonControls( camera );
controls.movementSpeed = 70;
controls.lookSpeed = 0.05;
controls.noFly = true;
controls.lookVertical = false;
并在render()中:
controls.update();
<强>更新强>
正如托德所指出的,在较新的版本中,需要提供增量时间参数:
controls.update(delta);
答案 1 :(得分:5)
请注意,在R49中,此api现在需要更新调用上的“delta”。 delta必须是自上次更新以来的毫秒位移,应该通过requestAnimationFrame回调传递。
http://paulirish.com/2011/requestanimationframe-for-smart-animating/