حزمة المحرك الإصدارة 0.7

السلام عليكم

اسم الحزمة:
حزمة المحرك AAnimation package
(بضم الميم وكسر الراء ربما يوجد من لم يعرف قراءتها)

نبذة عن الحزمة:
الحزمة تمكنك من تحريك المكونات component
الخاصة بحزمةswing بدون أية تعقيدات
(بصراحة لم أجربها على awt لكن يفترض أن تعمل)

إصدارة الحزمة:
v0.7
الإصدارات من 0.3 إلى 0.5 لم ترى النور لأنها لم ترقى إلى المستوى الذي أرنوه

قصة الحزمة:
بزغت فكرة هذه الحزمة من محاولاتي مساعدة م.ربيع أبو طير
(أخيراً وجدت فائدة للأخ ربيع :) )
كان يريد تحريك JButton على إطار JFrame
بالطبع هذا الكلام حصل في سنة رابعة جامعة على ما أذكر
وبقيت الفئة التي عملتها موجودة لدي حتى اليوم
وبينما أنا أراجع البرامج التي قمت بتصميمها إذ عثرت عليها بالصدفة
ومن هنا انبثقت لدي فكرة عمل حزمة لتحريك الأدوات

الفئات المستهدفة بالحزمة:
على الأغلب الحزمة ستكون مفيدة:
1- لمصممي الألعاب
(فعلياً بدأت الحزمة تصلح في هذا المجال وقد صممت عليها
لعبة بسيطة لازالت لا تصلح في الألعاب التفاعلية)
2- لمصممي الواجهات الاحترافية
3- لمصممي برامج المحاكاة

مميزات الحزمة:
1- تستطيع تحريك أي مكون component
على أي حاوية container
مع تحكم كامل بنوع الحركة أو اتجاهها أو سرعتها
2- هناك ثلاث أنواع من الحركات
أ- حركة أفقية
ب- حركة عمودية
ج- حركة قطرية
3- إمكانية التبديل بين الحركات بسهولة
4- إمكانية إجراء عدد من الحركات بشكل تتابعي
مثال:
حركة أفقية بمقدار 10 في 100 م.ث
ثم حركة عمودية بمقدار 50 في 200 م.ث
ثم حركة قطرية بمقدار 5 في 10 م.ث
5- مجموعة أحداث تساعدك على جعل الحزمة أكثر مرونة وتزيد من قدرتها على احتواء الأفكار
6- يمكنك تشغيل أكثر من محرك في نفس الوقت بحيث يشكل لدينا كل محرك بعداً مختلفاً
7-المرونة الكبيرة الموجودة في الحزمة بحيث يمكنك إضافة وحذف الأحداث والكائنات المتحركة والحركات الخاصة بالكائنات المتحركة
وسيستجيب المحرك لكل أوامرك مباشرة مالم يبدأ بتنفيذ حركة معينة فإن أي إضافة تتعارض مع هذه الحركة لا تعمل حتى تنتهي الحركة الحالية

الإضافات على الحزمة
1- يمكنك إضافة أكثر من كائن للمحرك وهذه هي الإضافة الأساسية في الإصدارة
2- لا يمكنك تحريك الكائن على أكثر من محرك وهذه الإضافة منطقية تماماً
طبعاً هناك كم هائل من الإضافات لا يمكنني تذكرها

ملاحظة مهمة:
لكي تعمل الحزمة جيداً
يشترط أن يكون مدير المكونات Layout Manager
من النوع nullLayout
(بمعنى أن نمرر للدالة setLayout مدخل null)

اقتراحات للتطوير
1- موضوع AnimationGroup وهي عبارة عن فئة تقوم بالربط بين الكائنات المتحركة
بحيث تولد أحداث عند التصادم بين الكائنات AnimationObject المنضمة للمجموعة
الفكرة تكمن في استخدام نمط المراقب observer بمعنى أن الكائن المتحرك سيعطي إشارة لمجموعة الكائنات المتحركة
بتغير مكانها وهذا يمكن المجموعة من التأكد من حال الكائن و هل اصطدم بكائن آخر
هذه هي الفكرة الرئيسية
2- حركات جديدة كدوران المكون حول نفسه أو دورانه حول نقطة ما
3- إضافة الحركة القطرية بأطوال غير ثابتة
4- إضافة دالة لتحرير المصادر freeResources الخاصة بالحزمة

التوثيق الخاص بالحزمة:
سأكتفي مؤقتاً بالشرح الموجود هنا
مع الفئتين Test1,Test2
بصراحة لا أخفيكم أني لست رائق البال
لكي أكتب التوثيق بالإنجليزية
فلو تطوع أحد الأخوة وساعدني في ذلك
(وهذا ما لن يحصل على الأغلب :) )
سأكون له شاكر

تنزيل الحزمة:
الحزمة على هيئة ملف jar يحتوي بداخله على الشيفرة المصدرية للحزمة
AnimationPackage (35)

معلومات عن المبرمج:
م.علاء محمد خليل الصالحي
خريج هندسة حاسوب
الجامعة الإسلامية بغزة

تحياتي

Leave a Reply