ঘটনাচক্রে, আপনি যা করার চেষ্টা করছেন ঠিক আমি তা করে ফেলেছি। একমাত্র ক্যাচটি হ'ল আমি Jbox2d ব্যবহার করছিলাম তাই কোডটি জাভাতে রয়েছে, তবে আপনি এখনও সি ++ ব্যবহার করছেন কিনা তা খুঁজে বের করতে সক্ষম হবেন
আপনি যদি সুইংিং অ্যাকশন করতে চান তবে আপনাকে মূলত জয়েন্টগুলি / মোটর এবং সমস্ত মজাদার জিনিস ব্যবহার করতে হবে। কী ইনপুটটির উপর ভিত্তি করে আমার কোডটি কেমন দেখাচ্ছে তার একটি স্নিপেট এখানে দেওয়া হয়েছে:
if (myinput.mouse0) {
agents.get(0).rightForeJoint.enableMotor(true);
agents.get(0).rightArmJoint.enableMotor(false);
if (Keyboard.isKeyDown(Keyboard.KEY_SPACE)){
agents.get(0).rightForeJoint.enableMotor(false);
}
mouseY = Mouse.getY();
mouseX = Mouse.getX();
float temp = mouseY - prevPos[1];
float temp2 = -mouseX + prevPos[0];
temp2 *= modifier; temp2 *= 0.000026;
temp *= modifier; temp *= 0.000030;
agents.get(0).armR.applyAngularImpulse(-temp);
agents.get(0).foreR.applyAngularImpulse(temp2);
prevPos[1] = mouseY;
prevPos[0] = mouseX;
if(temp2 < 0){
temp2 *=-1;
}
if(temp < 0){
temp *=-1;
}
fatigueDrain += temp2;
fatigueDrain += temp;
}
এবং তারপরে যতক্ষণ পর্যন্ত অস্ত্র তৈরি করা যায় এবং কী নয়, স্নিপেটটি দেখতে এটির মতো লাগে।
// RIGHTARM //
this.rightArmDef = new RevoluteJointDef();
this.rightArmDef.bodyA = this.torso ; this.rightArmDef.bodyB = this.armR;
this.rightArmDef.collideConnected = false;
torso_armL_pin = new Vec2(0.50f, +0.05f);
local_armL_pin = new Vec2(0.14f, 0.14f);
this.rightArmDef.localAnchorA.set(this.torso.getLocalCenter().add(torso_armL_pin));
this.rightArmDef.localAnchorB.set(this.armR.getLocalCenter().add(local_armL_pin));
this.rightArmDef.enableMotor = true;
this.rightArmDef.motorSpeed = 0f;
this.rightArmDef.maxMotorTorque =10f;
this.rightArmDef.enableLimit = true;
this.rightArmDef.lowerAngle = 1.2f;// * DEGTORAD;
this.rightArmDef.upperAngle = 5;
this.rightArmJoint = (RevoluteJoint)world.createJoint(this.rightArmDef);
আমি বুঝতে পারি যে এখানে অনেক কিছু চলছে, তবে এটি সম্ভবত আপনার পক্ষে আরও সহজতর হয় যদি আপনি কেবল আমাকে কী জিজ্ঞাসা করতে চান তবে আমি এটি ব্যাখ্যা করি। আপনি যদি কখনও এর মধ্যে কোনও জিনিস ব্যবহার না করেন তবে আপনার সম্ভবত বেশ কিছুটা পড়া দরকার।
সম্পাদনা >>
অনুধাবন করুন, বক্স 2 ডি এর সংঘর্ষ সনাক্তকরণ এবং পদার্থবিজ্ঞানের সমস্তগুলিকে এর লাইব্রেরিতে পরিষ্কারভাবে তৈরি করেছে। বিশ্বাসের দিকে তাকান যখন আমি বলি, স্ক্র্যাচ থেকে কিছু করার চেষ্টা করা এবং করার চেয়ে তাদের সিস্টেমটি নির্ধারণ করা আরও সহজ। আপনি যদি সংঘর্ষ চান, আপনি ফিক্সারগুলি বডিডিফগুলি ব্যবহার করেন, আপনি যদি তাদের ঘোরানো বা সরাতে চান তবে আপনি জয়েন্টগুলি ব্যবহার করেন। এটি প্রথমে কিছুটা জটিল বলে মনে হতে পারে তবে শেষ পর্যন্ত এটি তাদের পদ্ধতিগুলি ব্যবহার করার জন্য আপনাকে আরও বেশি সময় বাঁচায়।
আসলে, আমি আপনাকে পরামর্শ দেব যে আপনি কোনও পদার্থবিজ্ঞানের খেলা তৈরি করছেন বলে ধরে নিয়ে আপনি যদি স্ক্র্যাচ থেকে কিছু করার চেষ্টা করেন এবং এটি করেন তবে সম্ভবত আপনি কখনই শেষ করবেন না। কারণ ঘর্ষণ, উচ্ছৃঙ্খলতা এবং উল্লেখ না করা, / দক্ষ / সংঘর্ষ সনাক্তকরণের মতো বিষয়গুলির কম্পিউটিং আপনাকে আজীবন নিতে চলেছে।