हालाँकि मैंने विशेष रूप से बुलेट फ़िज़िक्स इंजन के साथ काम नहीं किया है, लेकिन मैंने दूसरे फ़िज़िक्स इंजन में कुछ ऐसा ही किया है। जिस तरह से मैंने इसे हल किया वह सीधे अनुवाद करने के बजाय कठोर शरीर के रैखिक वेग को निर्धारित करना था। आंदोलन और टकराव तब स्वचालित रूप से भौतिकी इंजन अपडेट चरण द्वारा नियंत्रित किए गए थे।
प्रलेखन से एक ऐसी btRigidBody::setLinearVelocity
विधि प्रतीत होती है जिसका आप उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप कोई त्वरण नहीं चाहते हैं, तो जब भी चरित्र चल रहा हो, तो रैखिक वेग को एक उचित मान पर सेट करें, और इसे वापस (0,0,0) पर सेट करें जब चरित्र को रोकना है (यानी जब खिलाड़ी कुंजी जारी करता है)।
जिन मूल्यों का उपयोग करने के लिए, सामान्य दृष्टिकोण आपके चरित्र की वांछित गति (एक फ्लोट / स्केलर के रूप में) के साथ शुरू करना होगा और फिर इसे एक सामान्यीकृत वेक्टर द्वारा गुणा करना होगा जो उस दिशा में इंगित कर रहा है जिसे आप स्थानांतरित करना चाहते हैं। मैं क्या देख सकता हूँ btVector3
कक्षा में पहले से ही इस सब के लिए तरीके हैं।
वैकल्पिक रूप से, आप वर्ण को पूर्ण भौतिकी वस्तु के रूप में मान सकते हैं, और या तो applyForce
या applyImpulse
विधियों का उपयोग करके आंदोलन को संभाल सकते हैं । इनसे शरीर में तेजी आएगी, इसलिए आपके पात्रों में गति आएगी और परिणाम संभवत: इस तरह से अच्छे लगेंगे। लेकिन, उदाहरण के लिए, यह सुनिश्चित करने के लिए आपको कुछ अतिरिक्त उपाय करने की आवश्यकता है, रैखिक वेग कभी भी एक निश्चित सीमा से अधिक नहीं होता है, या तो इसे क्लैंप करके या भिगोना / घर्षण के साथ खेलता है। इसलिए इसे लागू करना और परिमित होना थोड़ा कठिन होगा।
दोनों दृष्टिकोणों के साथ प्रयोग करें और फिर अपनी आवश्यकताओं के निकटतम व्यवहार का चयन करें।