2011-11-09 10 views
5

próbuję to:nie można uzyskać FirstPersonControls w three.js roboczych

kontrole = new THREE.FirstPersonControls (aparat fotograficzny);

controls.movementSpeed ​​= 1000; controls.lookSpeed ​​= 0.125; controls.lookVertical = true;

to nie działa, Od here okazało się, że muszę zaktualizować kontrolę z czasem delta:

var zegar = new THREE.Clock();

controls.update (clock.getDelta());

ale mam undefined is not a function błędu THREE.Clock()

można proszę wskazać mi pracę demo/samouczek z FirstPersonControls, albo po prostu powiedz mi, co jest nie tak?

Dzięki!

Odpowiedz

4

Czy próbowałeś po prostu zadzwonić pod numer controls.update(); (z trudem przekazując deltę)?

Właśnie próbowałem użyć klasy, kopiując trochę kodu z przykładu misc_sound.html. Więc w init():

controls = new THREE.FirstPersonControls(camera); 

       controls.movementSpeed = 70; 
       controls.lookSpeed = 0.05; 
       controls.noFly = true; 
       controls.lookVertical = false; 

aw render():

controls.update(); 

Aktualizacja

Jak Todd przypomina w nowszych wersjach, argument czas delta musi być dostarczone:

controls.update(delta); 
+0

Hej, który działał! dzięki! pomyliłem się pocztą o podobnym problemie. –

+2

proszę zobaczyć odpowiedź ToddMorrison'a (http://stackoverflow.com/a/11286753/1888983), jeśli tak jak ja, najpierw na ślepo zacząłeś kopiować/wklejać: P Rozmowa wymaga 'controls.update (delta);' – jozxyqk