برمجة الألعاب لالروبوت

برمجة الألعاب لالروبوت 32: مربع 2D و 2D المشهد الجزء 2

42 فيديوهات

238 دقيقة

تذكر: نحن أنشأت PlayerEntity فاعل. يجب أن ننتقل الآن إلى العديد من الأشياء. أولا، كنت استدراجه. قلت كان لدينا مشكلة هنا، لأن Box2D وScene2D العمل مع أبعاد مختلفة. يعمل Box2D في متر، وScene2D بالبكسل. أنا سأشرح مع الرسم. لدينا شاشة صغيرة. عندما تحدثنا عن Scene2D قلت لك أن الشاشة يجب أن يكون ارتفاع بالبكسل. على سبيل المثال، 360.

لا أستطيع أن أتذكر كيف لمحو Skitch. انا اقول 360 بكسل عالية. وبعد ذلك، عندما تحدثنا عن Box2D قلت أن ارتفاع ينبغي أن يكون في متر، على سبيل المثال، 4 أمتار الشاشة. حتى لو كنت رسم مربع 1 متر × 1 متر يجب أن نرى ... مثل هذا شيء عظيم ولكن تخيل أن تحتل متر واحد. والمشكلة هي أن هذا يجب أن تكون مرتفعة بما يكفي لهذا أن يكون 360 بكسل. الشاشة يجب قياس كل 4 متر و 360 بكسل.

الطريقة الوحيدة لتحقيق ذلك هي عن طريق 4 متر = 360 بكسل، بحيث هو التكافؤ. ما يضطرنا إلى إنشاء التحويل بين متر وبكسل. هذا أمر سهل وحلها عن طريق تقسيم: إذا 4 أمتار هي 360 بكسل، وسوف 1 متر يكون ... بكسل X. 360/4 = 90 وهكذا العلاقة لإنشاء، هو أن 1 متر هو 90 بكسل. نحن بحاجة إلى معرفة هذا لأننا يجب تحويل متر إلى Box2D بكسل Scene2D، لاستدراجه.

تذكر أننا لا يمكن إنشاء جثث 90 × 90، لأن ذلك سيكون الأجسام الكبيرة حتى لا احترام قواعد الطبيعي أن نقرر. ولكن في حين أننا لا يمكن أن تجعل حجم اللاعبين 1 بكسل، لأننا لن، لذلك نستخدم هذه المعادلة لتحويل من متر إلى بكسل، أو بكسل للمتر. لخلق لي علاقة تكافؤ، وخلق فئة المسمى الثوابت، حيث أقوم بإنشاء متغير يسمى PIXELS_IN_METER،

للإشارة إلى أن هناك متر واحد 90 بكسل. والآن، كلما كنت في حاجة لوضع أو تغيير حجم الفاعل، لا بد لي من تغيير متر قراءة Box2d هذا ثابت لتمريرها إلى بكسل. على سبيل المثال، سوف تمر الحجم إلى ممثل. إذا كان مربع هو 1 متر، فمن الواضح أن حجمها في بكسل سيكون 1 * Constants.PIXELS_IN_METER. كنت قد وضعت هذا * 1، ولكن لا يبدو ضروريا. في الواقع انا ذاهب الى القيام استيراد ثابت لاستخدام هذا الثابت.

الآن مربع 90 × 90 بكسل. مثل، عندما نذهب إلى الاعتماد على شاشة الملمس لدينا، ونحن بحاجة لتحديث الموقف حتى نعرف أين يجب استخلاصها من هذه اللحظة الجسم. هنا هو نفسه. يجب أن أقول أن موقفه سيكون body.getPosition (). X، body.getPosition ص (). Y. لا، لأننا مضروبا في عامل التحويل إلى نقله إلى بكسل، وهو ما يهمنا. والآن لدينا كل شيء،

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

ليختفي. الآن ما أقوم به هو إنشاء PlayerEntity، مثيل ذلك ... سنرى ما وضعت هناك، هادئة. أنا إضافته إلى المرحلة ... شيء أقوم به على العرض () في الواقع، لذلك دائما. في اخفاء () لا بد لي من إرساء العالم. وأدعو أيضا إزالة () لإزالة المرحلة الفاعل. وهذا هو كل شيء. ما زال يتعين القيام به؟ تنفق العالم، والملمس، والموقف المبدئي، وسوف يكون لأنني أريد أن، X 1 متر و 2 متر موقف في موقف Y

أنا لا تزال تفرض فقط الملمس ... كيف يمكنني تحميل القوام؟ هناك طرق سهلة لتحميل القوام كما رأينا، مع البناء. لكنها ليست صالحة للاستعمال بسبب كل مرة تحميل الملمس أريد أن مثيل. ليس هناك طريقة أفضل للقيام بذلك؟ نعم هنالك. يمكننا استخدام AssetManagers لمركزة تحميل الموارد.

العثور على دورات جديدة، والاشتراك. لن يكون هناك غير المرغوبة، وعدت :)

عن المؤلف

foto de jotajotavm
José Javier Villena

السيرة الذاتية: محلل مبرمج في لغات مختلفة. منصات المعلم PREMIUM المعترف به عالميا باعتباره CodigoFacilito. مقالات رئيس التحرير Cristalab. ويرعى بلدي قناة يوتيوب من قبل الناشر ANAYA وLaTostadora. أود أن أشرح بالتفصيل وإعطاء أمثلة عديدة لتجنب الشك.