2013-02-08 4 views
8

मैं भौतिकी सिमुलेशन के लिए box2d का उपयोग कर रहा हूं। मैं कभी भी एक कुंजी दबाए जाने पर शरीर पर आवेग लगाने के द्वारा तीर कुंजियों का उपयोग करके एक सर्कल ले जा रहा हूं। दुर्भाग्यवश, सर्कल तेजी से धीमा हो जाता है और ऐसा लगता है कि एक वास्तविक भौतिक शरीर की तरह तेज़ नहीं होता है। मेरी दुनिया के आयाम 400x800 पिक्सेल हैं। सर्कल बॉडी का त्रिज्या 20 एफ है।क्या बॉक्स 2 डी का उपयोग करते समय वेग पर ऊपरी सीमा है?

this के अनुसार, इसे बनाने के दौरान सर्कल त्रिज्या को स्केल करके समस्या को हल किया जा सकता है और चित्रकला के दौरान शरीर की स्थिति प्राप्त करने के बाद स्केलिंग किया जा सकता है। ऐसा कोई फर्क नहीं पड़ता है। क्या कोई कदम या सेटिंग है जिसमें मैं याद कर रहा हूं?

Code on pastebin

+0

क्या आप प्रासंगिक कोड साझा कर सकते हैं? जैसे शरीर का निर्माण इत्यादि। – Tom

+0

@Tom पेस्टबिन पर कोड के लिए जोड़ा गया लिंक। मैं libgdx गेम इंजन के साथ box2d का उपयोग कर रहा हूं - इसलिए कोड जावा में है। – ivymike

+1

क्या आप वास्तव में कहीं सर्कल पर आवेग लागू कर रहे हैं? 'ApplyLinearImpulse' – Tom

उत्तर

3

हाँ, वहाँ एक अंतर है जो आकार के बीच का उपयोग करते हैं है। Box2d फ़्लोटिंग पॉइंट नंबरों पर काम करता है और इस प्रकार यह सटीकता सीमित है और सिमुलेशन गुणवत्ता अलग है। Box2d आकार 0.1 to 10 के गतिशील निकायों के साथ सबसे अच्छा काम करने के लिए ट्यून किया गया है।

तो आम तौर पर आप ग्राफिक्स

अब आपके सवाल का के लिए भौतिक विज्ञान और अन्य के लिए एक इकाइयों का उपयोग करना पसंद करना चाहिए। शरीर की गति टकराव, घर्षण (यदि एक शरीर दूसरे पर फिसल रहा है) और linear damping से प्रभावित होता है। तो जांचें कि linear damping के लिए आप किस मान का उपयोग करते हैं (यह डिफ़ॉल्ट रूप से गैर-शून्य है जैसा मुझे याद है)। जहां तक ​​मुझे पता है, वहां कोई वेग सीमाएं नहीं हैं, लेकिन एक ही समय के चरण का उपयोग करते हुए उच्च गति कम गुणवत्ता वाले टकराव प्रदान करेगी।

+1

दुर्भाग्य से शून्य पर रैखिक नमी सेट करने से कोई मदद नहीं मिली :( – ivymike

19

मुझे अब समझने में काफी समय लगा, लेकिन वास्तव में वास्तव में आईएस बॉक्स 2 डी में वेग पर एक कठिन सीमा है। here देखें:

स्रोत कोड में फ़ाइल b2Settings.h में दिए गए प्रति 2.0 चरणों की अधिकतम गति सीमा है।

यदि आपके पास 60FPS पर एक फ्रेम प्रति फ्रेम है, तो आपके शरीर 120 मीटर/अधिकतम गति से आगे बढ़ सकते हैं। शायद यह किसी दिन एक समय बचाएगा।

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