2010-04-02 19 views
7

में घर्षण मैं एक टॉपडाउन गेम के लिए Box2d का उपयोग कर रहा हूं। "ग्राउंड" टाइल्स की एक श्रृंखला है, जहां प्रत्येक टाइल सेंसर आकार के साथ एक स्थिर शरीर है। क्या मैं इसके लिए घर्षण प्रभाव डाल सकता हूं, भले ही वस्तुएं वास्तव में जमीन के साथ "टकराव" नहीं कर रही हैं?बॉक्स 2 डी

यदि बॉक्स 2 डी मुझे ऐसा करने नहीं देगा, तो मैंने यह पता लगाकर अपना खुद का क्रियान्वयन करने का प्रयास किया है कि वर्तमान में वस्तु किस बल को स्थानांतरित कर रही है, और इसके विपरीत एक बल लागू कर रहा है, लेकिन मुझे पूरा यकीन नहीं है कि इसका पता कैसे लगाया जाए बल।

उत्तर

0

ApplyImpulse()ApplyForce() के बजाय बहुत बेहतर काम करता है।

+3

'लागू करें') 'ApplyForce()' से बेहतर क्यों लागू होता है? –

6

ऐसा करने का एक और तरीका आपके शरीर पर linearDamping सेट करना है। आप अपनी ऑब्जेक्ट टाइल के आधार पर इसे अलग-अलग सेट कर सकते हैं।

1

अन्य शक्तियों के बावजूद घर्षण शरीर की वेग के खिलाफ निर्देशित किया जाता है।

यदि रैखिक नमी सेट करना पर्याप्त नहीं है या बी 2 बॉडी की संपत्ति पर भरोसा करना अनुचित है, तो आप आसानी से nonlinear घर्षण बलों की गणना कर सकते हैं और प्रत्येक फ्रेम को ApplyLinearImpulse() या ApplyLinearForce() पर कॉल कर सकते हैं।

  • क्वेरी b2Body.GetLinearVelocity साथ वेग(), पैमाने (nonlinearly) परिणाम के रूप में बल मिलता है, और दोनों घटकों के हस्ताक्षर को उलटने के लिए वांछित।

  • यदि आप शरीर को रोकने का फैसला करते हैं (जब यह छड़ी के लिए पर्याप्त धीमा होता है), SetLinearVelocity() गणना के बिना चाल करता है।