أولا أود شكرك على إهتمامك، و أتمنى عليك زيادة إنتقاداتك
ثانياً، أتمنى عليك توضيح فكرتك كي أعمل عليها قبل أن تضع تعديلاتك (كي أتمكن من فهمها بشكل أكبر)
اقتباس- همممم يبدو أنك لا تستطيع أن تجعل الأعداء يتزايدون. (BadGuys عبارة عن فئة مركبة.)
أتقصد زيادة عدد BadGuys الذين يظهرون في نفس الوقت (أزيد كلاس آخر من هذه الفئة)
اقتباس2- كأني أرى أنك تستخدم System.gc وكأنك مبرمج سي ++ سابق! (أقصد من الموضوع أنه لا داعي لذلك.)
ما تقوله صحيح، و لكن لم أفهم إنني أقوم بإنشاء Object جديد من كل طلقة أو صاروخ لذا فهناك عدد كبير من Threads/Objects
ألا أحتاج إلى تحرير الذاكرة منها !
اقتباس- كما ذكر Developer فئاتك غير متناسقة. كل الفئات عبارة عن Threads وكأن الطائرة والأعداء والصواريخ كلها Threads.وهذا تصميم ركيك قليلا. فهذه الأشياء عبارة عن أشكال متحركة، وعليك تصميمها كأنها أشكال متصفة بالحركية عموما.
لم أفهم، قمت بعمل هذا التوجه كي يتحركوا معاً في نفس الوقت، لذا أتمنى عليك توضيح جملتك الأخيرة
اقتباس- في كل هذه الفئات، تعيد كتابة الشفرة لأن التصميم غير شيئي التوجه.
أتقصد التعديلات المستمرة، لا أعلم و لكن كلما أتتني فكرة للتحسين أقوم بوضعها
اقتباس- استخدامك لعملية Global Variables أو المتغيرات العامة تذكرني بالبرمجة في Basic!
أعتمد على Global Variables كثيراً خاصة في سي++، و في مادة Graphics In C++ Using OpenGL
من Assignments التي قمنا بها حتى الآن:
Paint سلمت في المحاضرة الثانية لهذه المادة، Galaxy، Snake، Bouncing Balls، 3D Meshing Sphere، و أخيرا
Moving 3D Robot and a Barn, All With Meshing and Hidden Surface Removal
و الحمد لله سلّمت كلها بنجاح يرافقها صداع في الرأس :wacko:
و لم نستخدم Threads أبدا في هذا كله كنا نستخدم Timer كلما إحتجنا إلى تحريك شيئين في نفس الوقت و لكن إستخدمت فقط في Galaxy،
لذا فمفهوم Thread و الطريقة المثلى لإستخدامه تحتاج إلى تصميم عدد من البرامج التي تحتاجها و هذه اللعبة أحدها، فهذه إحدى محاولاتي
لإيجاد الطريقة الأمثل للعمل ب Threads بحسب طبيعة البرنامج، أما في هذه المادة
فكان إعتمادنا الأساسي على المفاهيم الرياضية للرسم و ليس اللعبة بحد ذاتها
اقتباس- كلما صنعت صاروخا جديدا أعدت قراءة الصورة من الملف.... ألا تعتقد أن هذه العملية بطيئة لأشكال يعاد استخدامها كثيرا؟
أستخدم GlobalVariable فيه صورة الصاروخ و أستخدمها في كل مرة
لقد قمت بعدّة تعديلات أخرى على العبة، الإصدار 1.2.01:
- أزلت الكلاس الخاص ب GarbageCollector و إستغنيت عنه ب Timer
- قمت بإضافة Timer لإعادة رسم الخلفية، للحؤول دون ضياعها في بعض الأحيان
- صورة الصاروخ تقرأ مرة واحدة، و ليس في كل مرة.
- وجدت بأن هناك مشكلة تحصل في إعادة الرسم و ضياع الخلفية عند إاعادة اللعبة من خلال البرنامج و هذه المشكلة لا تحدث لدى أول
إقلاع للعبة، فقمت بالإستغناء عن ما كان سابقا، بإغلاق اللعبة و من ثمّ إعادة تشغيلها مجددا و لكن هناك قيد لما قمت به و هو عدم
تغيير إسم Jar File الخاص باللعبة
الملف التشغيلي للعبة:
Plane_Fighter_v1.2.01_Executable_Jar.rar
الكود:
تم تعديل هذه المشاركة بواسطة Final Heaven في 21 يناير 2007 في 10:30
و كن فتى في ذرى العلياء همّته
موقع خاص بي
قمت بتصميم لعبة بسيطة بإستخدام اللغة الجميلة الجافا
برنامج جميل بلغة الجافا يساعد على تنظيم المشاكل