سؤال

أنا أستخدم Mousejoint لسحب الهيئات في Box2D، لكنه يسبب تأخيرا بالقصور الذاتي.

هل توجد أي طريقة لسحب الجسم على الفور؟

هل كانت مفيدة؟

المحلول

الحل هو ضبط خصائص التردد و dampingratio في b2mousejointef.

علي سبيل المثال:

b2MouseJointDef md;
md.body1 = _groundBody;
md.body2 = body;
md.target = p;
md.maxForce = 10000.0f * body->GetMass();
md.dampingRatio = 0;
md.frequencyHz = 100;
_world->CreateJoint(&md);

نصائح أخرى

أحاول تنفيذ لعبة على غرار بونغ في مكتبة المعالجة / box2d وأتوقع وجود نفس المشكلة. هناك شيء واحد يتبادر إلى الذهن هو الحفاظ على كائن مخفي في عالم Box2D، وهو واحد يعمل مع المفاصل بالطريقة التقليدية، ثم ارسم كائن افتراضي يتبع الماوس بدون تأخير بدون إطار. قد يكون هذا كافيا لخداع المستخدم.

من ناحية أخرى، فإن Box2D ليس محاكاة الفيزياء الصارمة ويسمح ببعض المغفرة في الكائنات المتداخلة، لذلك يبدو أن هناك حقا يجب أن تكون هناك طريقة للقيام بذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top