2011-11-09 20 views
5

Three.js में FirstPersonControls प्राप्त कर सकते हैं:नहीं मैं इस कोशिश कर रहा हूँ काम कर

नियंत्रण = नए THREE.FirstPersonControls (कैमरा);

controls.movementSpeed ​​= 1000; नियंत्रण .lookSpeed ​​= 0.125; नियंत्रण .lookVertical = सत्य;

यह काम नहीं किया, here से मैं पता चला कि मैं समय डेल्टा के साथ नियंत्रण अद्यतन करने की आवश्यकता:

वर घड़ी = नए THREE.Clock();

controls.update (clock.getDelta());

लेकिन मैं के लिए THREE.Clock()

undefined is not a function त्रुटि आप कृपया, FirstPersonControls के साथ काम कर डेमो/ट्यूटोरियल करने के लिए मुझसे बात कर सकते हैं या सिर्फ क्या गलत मुझे बताओ मिल सकता है?

धन्यवाद !!

उत्तर

4

क्या आपने बस controls.update(); (एक डेल्टा पास करने के साथ) को कॉल करने का प्रयास किया है?

मैंने misc_sound.html उदाहरण से थोड़ा सा कोड कॉपी करके कक्षा का उपयोग करने का प्रयास किया है। init में तो():

controls = new THREE.FirstPersonControls(camera); 

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

और में प्रस्तुत करना():

controls.update(); 

अद्यतन

टोड बताते हैं के रूप में, नए संस्करण में, एक डेल्टा समय तर्क करने की जरूरत है आपूर्ति:

controls.update(delta); 
+0

हे काम करता है! धन्यवाद! इसी तरह की समस्या पर पोस्ट द्वारा भ्रमित हो गया। –

+2

कृपया देखें [टोड मॉरिसन का जवाब] (http://stackoverflow.com/a/11286753/1888983), अगर मुझे पसंद है तो आपने अंधेरे से प्रतिलिपि/चिपकाना शुरू किया: पी कॉल को 'controls.update (डेल्टा) की आवश्यकता है; ' – jozxyqk

5

कृपया ध्यान दें कि आर 4 9 में, इस एपीआई को अब अपडेट कॉल पर 'डेल्टा' की आवश्यकता है। डेल्टा को अंतिम अद्यतन के बाद मिलीसेकंद विस्थापन होना चाहिए, जिसे अनुरोध के माध्यम से पारित किया जाना चाहिएएनीमेशन फ्रेम कॉलबैक।

http://paulirish.com/2011/requestanimationframe-for-smart-animating/

संबंधित मुद्दे