الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هدية : لعبة Plane Fighter على الجوالات

مغلق
بدأه nardien28 في 25 نوفمبر 2006 · 4 رد · 1,631 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الآن صارت لعبة Plane Fighter الشهيرة على مستوى منتدى جافا للأخ Final Heaven

متاحة على الجوالات ( تطبيق J2ME)

ومجربة على جوال 6600 ( أغبى انواع الأجهزة الذكية) وبالتالي ان اشتغلت عليه فستعمل على غيره

طبعا التصميم أولي .. وأولي جدا

وصراحة لم أعالج موضوع تحسين الأداء Optimization بالنسبة لسرعة المعالجة وادارة الذاكرة

واترك هذا الأمر لكم ..

حاولت قدر المستطاع مراعاة والتزام منطق اللعية ذاته الذي صممه الأخ Final Heaven

و بنفس الوقت الاستفادة من تقنيات برمجة الألعاب التي توفرها الحزمة javax.microedition.lcdui.game بدءا من MIDP 2.0 .

كاستخدام الصف Sprite ليغلف العناصر المتحركة كالطائره والصواريخ و القنبلة و الوحوش .

مما سهل عملية التحريك كما وفر لي الطريقة collidesWith التي يستدعيها غرض من الصف Sprite وتأخذ برامتر غرض من صف Sprite آخر للاستعلام عن تصادم هذين الصفين واذا كان الاجابة "نعم تصادما" تعيد الطريقة true ذلك سهل لي عملة كشف التصادم بين الصواريخ والوحوش وبين القنابل والطائرة بدل عملية مقارنة الPixel المعقدة .

وهذا مخطط UML لتسهيل فهم المكونات العامة للتطبيق ..

لأنه بالنسبة لي بصراحة اعتبر عملية قراءة كود تطبيق جافا بدون مخطط الصفوف الرئيسي هم بكبر الجبال ... حتى لوكان التطبيق بسيط !!

f6137ba049.jpg

واجهتني بعض المشاكل التي اعطيتها حلول (ترقيعية)

أولا : عند رسم الطائرة أسفل الشاشة مثل لعبة الأخ Final Heaven استخدمت الكود التالي :

x = this.getWidth();
y = this.getWidth();
plane = new Plane();
plane.plane.setPosition(x / 2, y / 2 + 20);

ليعطي نتيجة صحيحة على الموبايل ... أي اظهار الطائرة أسفل الشاشة

بينما على المحاكي يؤدي الكود السابق الى اظهار الطائرة وسط الشاشة تقريبا .

لأن التعويض بـ x و y مباشرة .. يعطي نتيجة صحيحة على المحاكي ولكن لا تظهر الطائرة على الجوال .

ثانيا : لم اجد أي طريقة لرسم القنبلة بحيث يمكنني بعد ذلك كشف التصادم كما فهل الأخ Final Heaven

واضررت الى نمذجتها بصف Sprite عبر صورة PNG لدائرة ذات خلفية سوداء .

ثالثا : رسم الانفجار يتم في الزاوية العيا اليسرى للطائرة أو الوحوش ولم اجد طريقة لايجاد احداثيات التصادم

الموضوع الذي كاد يشيبني هو موضوع القيم العشوائية ..

الكود الذي استخدمه الأخ Final Heaven يعطي نتائج صحيحة على المحاكي

ولكن على الجوال يعطي Exception:

Random random=new Random();
int randomNum = random.nextInt (10);

بعد بحث طويل اكتشفت انه في الجوالات يستوجب ازالة الاشارة (موجب او سالب) بالشكل التالي :

int randomNum =(random.nextInt() >>>1) % 10;

PlaneFighter2.rar

src.rar

PlaneFighter2.rar

تم تعديل هذه المشاركة بواسطة nardien28 في 26 نوفمبر 2006 في 16:49

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#2

ملف الجاد غير مرفق، أرجو إرفاقه، أعتقد أنه ضروري لتجربة البرنامج على الحاسب على الأقل!

لو تضعي لنا وصلة لبرنامج Final Heaven النسخة الحاسوبية.

وأقترح وضع وصلة في منتدى الألعاب أيضا.

حسام.

#3

تم التعديل ..

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#4

جميل ما قمت به

أشكرك على إهتمامك بعملي المتواضع

و أتمنى لك التوفيق

و كن فتى في ذرى العلياء همّته

يسمو بغاياته حتى على زحل

موقع خاص بي

My Website

قمت بتصميم لعبة بسيطة بإستخدام اللغة الجميلة الجافا

Plane Fighter Game

برنامج جميل بلغة الجافا يساعد على تنظيم المشاكل

The TS Organizer

#5

حاولت فك الملفات لكني واجهتني أخطاء. كأنها معطوبة.

هذا الموضوع مغلق.

مواضيع مشابهة