كيف يمكنني تقسيم طريقة أرجوحة الطلاء في جافا؟

StackOverflow https://stackoverflow.com/questions/901489

  •  05-09-2019
  •  | 
  •  

سؤال

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

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

ما زلت جديدا جدا على Java، والتعلم أثناء التنقل.

شكرا مقدما.

أمر

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

المحلول

هناك فكرة أخرى هي إنشاء فئة أو واجهة فائقة لجميع العناصر التي يجب سحبها على الشاشة. يتيح CVALL هذا ScreenObject. يمكنك بعد ذلك الحصول على طريقة رسم (Graphics2D G) المحددة في فئة ScreenObject. بعد ذلك، يقوم كل كائن بمنفذ طريقة السحب () وقلق فقط إزاء رسم نفسها. يمكنك حتى التفكير في إنشاء متغير يحدد ما إذا كان يجب تشغيل طريقة السحب هذه على الإطلاق.

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

نصائح أخرى

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

دون رؤية التعليمات البرمجية الخاصة بك لا أستطيع تقديم نصيحة محددة للغاية حول تقسيم طريقة الطلاء الخاصة بك. يمكنني أن أخبرك أنه في الرسوم المتحركة Sprite، يحتوي كل كائن Sprite عادة على طريقة رسم خاصة به والتي تأخذ كائن الرسومات الرئيسية (أو أكثر احتمالا مؤقتا) كمعلمة. نظرا لأن العفريت يجب أن تعرف صورته وموقعها، فيمكنه بعد ذلك سحب نفسها في الصورة الرئيسية. يمكن لطريقة الطلاء الخاصة بك بعد ذلك حلقة فقط من خلال قائمتك من العفاريت التي تحتاج إلى إعادة رسمها واستدعاء طريقة الرسم الخاصة بها.

قد تتطلع إلى لعبة القاتل البرمجة في جافا للحصول على معلومات أكثر تفصيلا.

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

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