मैं lib2dx का उपयोग कर बॉक्स 2 डी के साथ अपने पहले गेम पर काम कर रहा हूं। मैं अपनी वस्तुओं का परीक्षण करने के लिए डीबग रेंडरर का उपयोग कर रहा हूं। मैंने वस्तुओं की तरह कुछ कार बनाई। प्रत्येक कार में मुख्य शरीर होता है, जो 6 अंक (लगभग 1 मीटर लंबा, 0.7 मीटर ऊंचा) का एक बड़ा बहुभुज है, और इसमें दो पहियों को घुमावदार जोड़ों से जोड़ा जाता है।कुछ निकायों के लिए असफल होने में लिबडक्स बॉक्स 2 डी में टकराव
मुख्य कार में एक तोप और एक मशीन गन संलग्न है, जो विद्रोह जोड़ों के माध्यम से भी जुड़ा हुआ है।
मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि कार का बड़ा हिस्सा टकराव नहीं कर रहा है। 2 कारों एक दूसरे को मारा है, वे अतिव्यापी हैं, इस तरह:
कुछ नोट:
- पहियों और तोपों (छोटे आकार) टक्कर ठीक कर रहे हैं। जब पहिये स्पर्श करते हैं तो शरीर
- अगर मुझे कोड के माध्यम से टकराव का पता चलता है, तो टकराव वास्तव में
- मैंने इसे एक छोटी वस्तु (मशीन बंदूक से निकाल दिया गया गोली) के साथ करने की कोशिश की, और मैंने ऑब्जेक्ट की "isBullet सेट की "सच के रूप में मैं एक अलग पोस्ट (not proper collision in box2d) में देखा, लेकिन एक ही परिणाम था संपत्ति (बुलेट लाल रंग में परिक्रमा कर रहा है):
यहाँ कोड मैं बनाने के लिए उपयोग कर रहा हूँ है निकायों:
protected Body createBody(Material material, Shape shape, BodyType type, WorldWrapper world)
{
BodyDef bodyDef = new BodyDef();
bodyDef.type = type;
bodyDef.position.set(initialPosition);
Body body = world.createBody(bodyDef);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.density = this.material.getDensity();
fixtureDef.friction = this.material.getFriction();
fixtureDef.restitution = this.material.getRestitution();
fixtureDef.shape = shape;
body.createFixture(fixtureDef);
return body;
}
कार चला जाता है पहियों विद्रोह करना जोड़ों पर मोटर्स, इस तरह बनाया गया आगे का उपयोग कर:
public void goForward()
{
for (RevoluteJoint joint : wheelJoints)
{
joint.enableMotor(true);
joint.setMotorSpeed(-this.engineSpeed);
joint.setMaxMotorTorque(this.engineTorque);
}
}
मैं निम्न मान का उपयोग कर रहा:
Density = 2500;
Restitution = 0;
Friction = 0.1;
BodyType = Dynamic;
मैं एक 1/60 उपयोग कर रहा हूँ सेकेंड वर्ल्ड स्टेप, वेग के साथ संस्करण = 6 और स्थिति इटरेशन = 2
कोई विचार क्या मैं यहां क्या खो रहा हूं?
धन्यवाद! मैं आज कोशिश करूँगा। बीटीडब्ल्यू मैंने 3 सप्ताह पहले इस प्रोजेक्ट को बनाया है, और मैंने सेटअप निष्पादन योग्य में libgdx कार्यक्षमता अद्यतन का उपयोग किया है। क्या बदलाव हाल ही में हैं? – Charbel
मैं गिटहब पर जो देखता हूं, उससे 22 मार्च को परिवर्तन जोड़ा गया था। नवीनतम libgdx रिलीज बिल्ड 16 मार्च से है, इसलिए यह वर्तमान में केवल रात की रात में है। – Shinni
मैंने बहुभुज को एक उत्तल आकार के रूप में बदल दिया और यह प्रभावी रूप से समस्या थी। मैं 2 आयतों के सुझाव का उपयोग करूंगा। धन्यवाद! – Charbel