abshammeri

تحليل اللعبة الكلاسيكية Binary Land ..

38 ردود في هذا الموضوع

السلام عليكم .

هذه أحد سلسلة من المواضيع المطروحة التي تهدف لتحليل ألعاب ثنائية الأبعاد من ناحية ( خوارزمية بحتة) .

اللعبة المقترحة هي : Binary Land .

اللعبة من اقتراح الأخ HARD .

الروابط وفرها الاخ سلوان على هذا الرابط ( المشاركة رقم 11 ).

العب اللعبة قليلا ... قم بالبكاء قليلا على تلك الاطلال :huh:

ثم لنبدأ بالتحليل :

post-42837-1214923758_thumb.png

* كيف يبحث العدو عن البطاريق الوديعة .

* اسلوب تحرك البطاريق متناسق .. كيف يتم ذلك :) .

* نظام اكتشاف التصادم المستخدم .. ماهو .

بانتظار المحللين ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

سأحاول الاطلاع على الكود فى القريب العاجل ولكن بعد ما اتعمق قليلا فى السى بلس لانى مازلت لا اعرف الكثير حول برمجة الالعاب :)

ولكنى معكم اينما ذهبتم وايضا سأحاول ان ارى كل تضعوه اكيد بستفيد منكم وسأحاول ان اعلق ايضا معكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته

سأبدا معكم لكن ليس بالتحليل الدقيق طبعا

كيف يبحث العدو عن البطاريق الوديعة .

العدو أظنه عنكبوت صح ؟ :)

حركته عشوائية تزداد سرعتها بعد مضي وقت معين من اللعبة

اسلوب تحرك البطاريق متناسق .. كيف يتم ذلك

ربما اللعبة مبرمجة للاعبين في الأساس :)

الحركة متناسقة أي أن نفس الزيادة تأخذ في المحور y لنفس اللاعبين لكن الزيادة على x تكون -x للاعب الثاني

نظام اكتشاف التصادم المستخدم .. ماهو .

مراحل اللعبة مصممة بحيث تكون حركة اللاعب في اتجاه واحد يعني لا يستطيع اللاعب التحرك على المحورين x و y في نفس الوقت

أظن أن اكنذتشاف التصادم هنا بالاحداثيات فقط الموضوعة لتشكيل المرحلة المرسومة

لدي سؤال يمكن أن يكون غبي :D

كيف يتم تسجيل النقاط عند الوصول للهدف ؟

تم تعديل بواسطه DreamNet
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بالنسبة لنظام التصادم ، اللعبة عبارة عن tiles بلاط ، و هناك بلاطات معينه يحدث عندها التصادم و ليرمز لها ب x بداخل الخريطة و تصادم من نوع rect to rect يُحقق الغرض .

كيف يبحث العدو عن البطاريق ، باستخدام خوارزم A* و البحث عن اقصر مسار و اول من بدأ بهذه الخوارزم في لعبة PAC -MAN الشهيرة :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

سأقول رأيي :

كيف يبحث العدو عن البطاريق ، باستخدام خوارزم A* و البحث عن اقصر مسار و اول من بدأ بهذه الخوارزم في لعبة PAC -MAN الشهيرة

كنت أريد اقتراح هذه اللعبة .. لكن تراجعت عنها بعد اقتراح الاخ hard .. في هذه اللعبة .. ستلاحظ ان العنكبوت حركته عشوائية اكثر مما هي موجهة .. هذا ما لاحظته على الاقل :) ,, وكما قال الاخ dream .

- حركة البطريق هي كما قال الاخ dream تماما ..

- اكتشاف التصادم ايضا تكلموا عنه الاخوة ولا يوجد ما اضيفه .

كيف يتم تسجيل النقاط عند الوصول للهدف

هل تقصد كيف تفوز ... هذه عقدتني كذلك ..

يجب ان يلتقي البطريق واليطريقة بجوار القلب .. هكذا :

post-42837-1215016495_thumb.jpg

واذا جاءك العنكبوت اطلق عليه النار x او f .. حسب المحاكي .. :D

اصعب شيء في برمجة اللعبة هو تصميم مراحلها .. بحيث تصعب على اللاعب الجمع بين البطريقين ..

سأقوم بتطوير اجزاء من اللعبة اليوم ان شاء الله ... أتمنى يبرمجها أحد ايضا .. فاللعبة سهلة ونريد ان ننتهي من تحليلها في خلال هاليومين :) .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته,

بارك الله في صاحب الفكرة ومقترح اللعبه وموفر اللعبة وفي أعضاء المنتدى. الفكرة ستحرك المنتدى بإذن الله,

التحليل من قبل الإخوة لا أرى علية غبار تحليل الحركة صحيح, التصادم, العنكبوت, , إلخ.

بدأت بالمثال منذ الأمس وقمت بعمل الحركة فقط؟؟!!

لكن الأهم, جمعت الملفات الضرورية (print screen + نسخ ولصق + فوتوشوب) لمن يريد تجميع الأفكار في تطبيق.

التطبيق والملفات في المرفقات, وهو تنفيذ للحركة لكلا من مارلون و جيورين. العنكبوت والمرحلة في التطبيق القادم بإذن الله.

المثال قمت بكتابته بالفيجوال بيسك, وبإستخدام الدايركت إكس, وسأحاول تحويل الكود إلى السي++ (أخوكم مستجد في هذه اللغة). بإذن الله.

اسال الله التوفيق لي ولكم,

Binary_Land.rar

تم تعديل بواسطه High volt
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ..

محاولة جيدة أخي HiVolt .. ننتظر منك اكمالها سريعا ... بأي لغة كانت :) ...

هذه محاولة بائسة .. أعتقد أنها تستحق منكم دقيقة لتجربتها .. ولم أكن أتصور ان البطريق متعب لهذه الدرجة..

post-42837-1215499468_thumb.jpg

* بناء مرحلة اللعبة بطريقة tiles .

* تحريك البطاريق الغبية .. كما هو موجود في اللعبة .. شكرا للاخوان الذين ساعدوني في مسألة timer.. وسام .. سلوان .. أحمد .. الخ الخ ...

* وأخيرا .. اكتشاف التصادم ..

المشكلة هي في اكتشاف التصادم . حاولت أن ابحث عن طريقة سريعة لاكتشاف التصادم .. بالاعتماد على tiles .. الخوارزمية هي :

		/*
اكتشاف التصادم يعتمد على خريطة .. أو مصفوفة اللعبة
الخوارزمية هي :
1- get x position for male penguin .
2- get y ~~~~~~~~~~~~~~~~~~~~~~~~~~.
3- get Row index of tile and Column index of tiles from 1 and 2 .
:
row = 12 - (y/16); 12 is # of rows.
col = x/16 - 1; 1 is offset .
4- if( tiles[row][col] == 0) then move

note:
left-down point of the image is (x and y position) of the sprite
*/
// there are some problem with colletion detection

لكن يوجد مشاكل في دقة التصادم .. يبدو أن المشكلة تتلخص في أن الاحداثيات التي اعتمدتها لل sprite .. هي

x = left side of the sprite .
y = bottom side of the sprite.

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

* هل منكم .. من جرب التصادم بالاعتماد على tiles ..

اذا لم انجح في تحسين التصادم .. سألجأ الى التصادم المعروف .. نمشي على جميع الصناديق ..ونكتشف التصادم بين كل صندوقين ..

* أما العنكبوت .. فليس لي مزاج الان للعناكب .. البطاريق اتعبتني ...

BinaryLand_Test.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

وعليكم السلام

تستطيع أن تعمل التالي :

كل tiles يحتوي على نقطة في متصفه

إحداثيات هذه النقطة يجب أن تكون أعداد صحيحه يعني من نوع int

إحداثيات النقاط الأربع الموكونة للtiles تكون أعداد كسريه أي لا تكون أعداد صحيحة

كل من البطريقين يحتوي على نقطة في منتصفه يعني مثل tiles

هذه النقطة هي position للبطريق

الحاله الأولى

إذا كان الإحداثي x لهذه النقطه يساوي عدد صحيح فإن هنالك tile واحد يقع فوق البطريق

تحقق إذا كان هذا الtile فارغ أو عباره عن حائط

إذا كان فارغ فإن البطريق قادر على الصعود

الحاله الثانيه

ذا كان الإحداثي x لهذه النقطه لا يساوي عدد صحيح فإن هنالكtwo tiles يقع فوق البطريق

أي أن البطريق لا يستطيع الصعود

أيضا بنفس الطريق تطبق على y

تم تعديل بواسطه hunterxhunter
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم,

محاولة جيدة للأخ High Volt والأخ الشمري, انتظر إصداراتكم المحدثة. :)

بعد عدة ايام من العمل, اعتقد إنه حان الوقت لأقدم محاولتي :D , هنالك الكثير من العناصر التي لا تزال مفقودة, ولكن استطيع أن اقول إن 30% من اللعبة كامل

إستخدمت Python 2.5 و PyGame 1.8, وإخترت عملها باللغة العربية, لدي نظام بسيط جداً للكتابة باللغة العربية (للمهتمين ملف lp_font.py والذي يستخدم font.png للإظهار بإستخدام إحداثيات الحروف والرموز).

binaryland_sc2.jpgbinaryland_sc1.jpg

تحميل لعبة BinaryLand (الحجم: 6.9 MB)

تحميل كود لعبة BinaryLand الإصدارة 0.1 (الحجم: 13 KB)

تلاحظون إن حجم اللعبة كبير, وذلك لأني ضمنت جميع المكتبات اللازمة (Python, PyGame, SDL, libpng, ...) كجزء من ملف الـ exe, مما يجعل اللعبة standalone.

الكود اعتقد إنه سيئ, لأنني كتبته بإستعجال, ولكن يمكن الإستفادة من بعض اجزاءه.

هنالك فقط مرحلتين, وعند بداية المرحلة الثالثة ستغلق اللعبة.

والآن, لمن يجرب اللعبة ارجو ملاحظة الـ FPS الموجود في شريط عنوان النافذة والذي يجب ان يكون دائماً قريب من 60, إن كان اقل من 55 فأعلموني بذلك رجاءاً لكي احاول زيادة الأداء.

لدي افكار بخصوص تطبيق العنكبوت, يبدو إنه يستخدم نقاط للطريق (waypoints) لكي يختار بشكل عشوائي اين يذهب, بعد إختيار الإتجاه يتم تحريك العنكبوت من النقطة الحالية لنقطة الطريق القادمة, وتتكرر العملية عند وصوله, فكرتي هي تعريف خريطة من نقاط الطريق تعتمد على خريطة الـ tiles الاساسية, وقبل التوجه من نقطة إلى أخرى يتم التأكد من عدم وجود حاجز من الـ tiles بين النقطتين.

تم تعديل بواسطه SandHawk
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

:D

دائما الأخ سلوان في المقدمة وكنت أخشى عدم مشاركته

بالنسبة للFPS عندي قريب من 60

في الحقيقة كنت أتمنى أن تكون عملية المناقشة أطول والتطبيق يكون في آخر مرحلة

كنت أنتظر أن نبدأ بالحديث على الفئات التي يمكننا انشاؤها للاعب

طريقة انشاء المرحلة أيضا

ثم العدو

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

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

بالتوفيق للجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته, جمعه مباركة,

الشمري, محاولة جيدة, فلنكمل ما بدأناه, يبدو أن الموضوع لم يخمد.

SandHawk , جبار والجبروت لله, المحاولة الأفضل إلى الآن. أتمنى أن يجتهد باقي الإخوة في محاولة التطبيق, وسنساعد بعضنا البعض فيما يصعب على أحدنا.

ولكن استطيع أن اقول إن 30% من اللعبة كامل

تقصد 30% لم يكتمل, تقريبا لم يتبقى شيئ,

سأبدأ الآن في في إكمال ما بدأته,

موفقين إخوتي في الله,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

محاولة رائعة أخي سلوان .. وال fps لايقل عن 60 تقريبا .. ننتظر العنكبوت ..

أقوم حاليا بعمل محاولة جديدة .. فالموضوع لم يخمد بعد أخي High Volt .. لكن اللعبة ليست بالبساطة التي تخيلتها لذلك قمت باستدعاء المحرك الذري :lol: .. وسأسرق ملفات الصور منك أخي سلوان :-) .. من أي وجدتها ...؟

تم تعديل بواسطه الشمري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكراً لكم على التشجيع :)

أقوم حاليا بعمل محاولة جديدة .. فالموضوع لم يخمد بعد أخي High Volt .. لكن اللعبة ليست بالبساطة التي تخيلتها لذلك قمت باستدعاء المحرك الذري :lol: .. وسأسرق ملفات الصور منك أخي سلوان :-) .. من أي وجدتها ...؟

تفضل رجاءاً, لقد سرقتها من اللعبة نفسها :D أخذت اكثر من 100 screenshot وبحثت عن كل صورة على حده وعدلت على القليل منها لأضيف بعض الأشياء (الكتابة العربية مثلاً), اخذت مني هذه العملية عدة ساعات.

والآن سأتكلم قليلاً عن بعض المسائل التي واجهتني والطرق التي إستخدمتها لعمل بعض الأشياء.

اولاً, صورة اللعبة تبدو كأنها antialiased أو ببساطة blurred, لأني في الحقيقة أستخدم سطحاً بابعاد مطابقة للأصل (256x240) كـ backbuffer, وعندما أكمل الرسم اقوم بعمل blit من سطح أصغر إلى سطح أكبر (سطح النافذة بأي حجم) بإستخدام فلتر للتنعيم smooth scale.

لقد إخترت تشكيل المرحلة الواحدة من عدة طبقات, كل طبقة هي عبارة عن مصفوفة بحجم 15x10 تمثل شيئاً ما (تحتوي على قيم 0 و 1 فقط), حتى الآن الطبقات هي كالآتي:

1. طبقة الـ tiles

2. طبقة شبكات العنكبوت: تحدد مكان شبكات العنكبوت في المرحلة

3. طبقة نقاط الطريق: سوف تستخدمها العناكب للتحرك كما ذكرت في جوابي السابق

4. طبقة العناكب: تحدد موقع العناكب نفسها

5. طبقة الـ items: سوف استخدمها لكي أصف اماكن القلوب في مراحل الـ bonus, وكذلك هنالك secret items في المراحل الإعتيادية تختبأ تحت الـ tiles.

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

post-115785-1215985398_thumb.png

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

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

لقد قمت بتطبيق هذه الفكرة في اللعبة, في ملف lp_penguins.py تحديداً في الإسلوب ()MovePenguin اول جزء منها مشروح بشكل شبه مفصل.

اما بالنسبة لعمل التعرف على التصادم نفسه فقد إستخدمت مصفوفة الـ tiles لذلك, وذلك عن طريق تحويل الإحداثيات الإعتيادية في الشاشة إلى إحداثيات تشير إلى عنصر في المصفوفة, هنالك عملية مفيدة جداً هنا وهي القسمة التي تقوم بعمل floor rounding وهي تتخلص من الكسر وتترك العدد الصحيح فقط.

لنفرض إن هنالك نقطة في الإحداثي 150,100 ونرغب في معرفة ما إذا كانت تلك النقطة تتقاطع مع tile ام لا:

// Suppose we have the two dimensional array: int tiles [15][10], where 0 means no tile
// and we have constants: TILE_WIDTH=16, TILE_HEIGHT=16, TILE_COUNT_X=15, TILE_COUNT_Y=10
// We also have: TILEMAP_X and TILEMAP_Y, representing the position where the tile map is drawn to the screen (top-left corner)
Point p(150,100);

ax = floor((p.x - TILEMAP_X) / TILE_WIDTH);
ay = floor((p.y - TILEMAP_Y) / TILE_HEIGHT);

if(ax >= TILE_COUNT_X || ay >= TILE_COUNT_Y)
// The point is out of the tiles map which also means a collision
return true;
if(tiles[ax][ay] != 0)
return true;
else
return false;

هذه بالضبط الطريقة التي إستخدمتها ولكن بإسلوب مختلف قليلاً, عسى ان تكون مفيدة لكم, وانا مهتم جداً لسماع اي افكار اخرى للقيام بعملية التصادم.

تم تعديل بواسطه SandHawk
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته ,,

بعد ايام من العمل, اتمنى ان تمنحوني شرف التجربة البناءة (ملاحظات,انتقادات,سلبيات وإيجابيات), المرحلة من تصميمي, لم استخدم نفس إحداثيات اللعبة الأصلية, ففي الإصدار الأصلي, هناك فراغ ل 15 tiles بشكل أفقي, ,10 tiles للرأسي.

العنكبوت لم افعلة بعد, استخرجت الأصوات من اللعبة الأصلية بواسطة برنامج total recorder , الصور كما ذكرت سابقا, بواسطة printscreen + قص + لصق + تعديل.

لن أطيل عليكم, والى اللقاء في التطبيق القادم (العنكبوت + AI + + + ,)

تحياتي

Binary_Land.rar

تم تعديل بواسطه High volt
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

المعذرو أخي سلوان, لم الاحظ ردك, وضعته بينما كنت اكتب ردي,

يقوم مقوم الحركة هذا بتحليل موقع البطريق بالنسبة لحركته, وعندما يتعرف على حالة مشابهه للصورة اعلاه, يقوم بتحريك البطريق لليسار (رغم إن المستخدم يضغط الإتجاه الأعلى) حتى يصبح موقع البطريق مناسب للحركة للأعلى (اي حتى يتخلص من التقاطع), عندها يبدأ بالحركة للأعلى فعلاً.

استخدمت هذه التقنية ولم اكن اعرف اسمها , ولكن مع تعديل بسيط, حيث أنه من المستحيل أن يضع المستخدم البطريق في المكان الصحيح الذي يخولة للتحرك بالأعلى, أي من المستحيل أن يفعل ذلك :

post-84332-1216029603_thumb.jpg

لذا في حالة الضغط على الزر الأعلى مثلا في مثل تلك الحالة, يتم معرفة وضع البطريق بالنسبة للـ tiles , فإن كان في النصف الأيمن وهناك فراغ للصعود للأعلى, تتم الإزاحة للجهة اليسرى حتى يصل إلى وضع يمكنه من الصعود, وبالمثل للجهة اليسرى, مثال :

post-84332-1216029628_thumb.jpg

أما بالنسبة للتصادم, فاستخدمت طريقة أخرى,

دالة تمرر عليها الـ index التابع لكل tile !!!!

ولكن ألن نهلك المعالج بهذه الطريقة؟؟؟

لا, فقد قمت بتقسيم المرحلة, بحيث إذا كان البطريق في الجزء الفلاني, فلا يتم اختبار التصادم إلى في الجزء المحدد.

بالتوفيق

تم تعديل بواسطه High volt
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

للتو حملت تطبيقك أخي HI .. وسأجربه .. أحببت أخبرك حتى لاتمل كثيرا من الانتظار :) ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ..

جربت الديمو الجديد أخي high volt .. عشرة على عشرة ما شاء الله :) .. اكتشاف التصادم والحركة الناعمة طبقتها بشكل رائع ..

ولكن لي ملاحظة على مقوّم الحركة ( مصطلح جميل أخي سلوان :D ) .. ألا تلاحظ أن البطريق اذا صار في منتصف موقع ما .. أنه يتحرك دائما الى اليسار ..لكي تعمل عملية " تقويم " .. أشعر أن هذا غير مجدي أحيانا .. فمن المفترض أنه ينزاح الى اليمين أحيانا ..

لا أدري ان كنت فهمت ما أقصده ..:-) .. أو ان كانت الملاحظة في مكانها ..

الأمر الاخر وهو أمر الخروج من اللعبة جنني :) .. هل نسيته ...

بانتظار العنكبوت .. وأتمنى أن ترفق source code حتى نستفيد أكثر .

* حاليا لازلت أعمل على ديمو جديد .. لكن بدلا من عملية تطوير ديمو .. صارت تطوير محرك :-) .. انشغلت بتصحيح أوضاع المحرك .. لذلك تأخرت .. ولكن الديمو قادم بحول الله .. وسأستفيد من ملاحظاتكم .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته

لنبدأ الحوار الجاد -_-

بدأت بالهيكل العام للعبة على IRRLICHT لكني توقفت عند التصادم

لو كانت ثلاثية الأبعاد لكانت أسهل في تطبيق التصادم باستعمال دوال المحرك :lol:

لكني أردت أن أضيف هنا بعض الأشياء ربما تفيدكم

نفس اللعبة يمكن تحميلها هنا تعمل بدون محاكي

2850-1.jpg

تحميل

سورس كود اللعبة الموجودة على sourceforge :lol:

binary.zip

طبعا تحتاج إلى مكتبات SDL

اللعبة المذكورة في الأعلى تتخلص من مسألة التقويم بتحريك البطريق مباشرة إلى منتصف الTiles وبهذا يمكن له المرور من أي اتجاه

post-23361-1216281237_thumb.jpg

ننتظر التحليل مع الأكواد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم يا اخوان

اي برنامج سوف احتاج الى التعامل مع اللعبة دي

فيجوال بيسك ام السي بلص بلص

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ليش مانبدا لعبة جديدة أحسن صح ؟؟

ابغا اشترك معاكم لكن باين القطار فاتني :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته,, آسف لتأخري,

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

لا أدري ان كنت فهمت ما أقصده ..:-) .. أو ان كانت الملاحظة في مكانها ..

بلى فهمت ما تقصده, الملاحظة في محلها :D , فعلا لا ينزاح الا الى اليسار, لم الاحظ ذلك سلفا

الأمر الاخر وهو أمر الخروج من اللعبة جنني .. هل نسيته ...

:D لا لم أنسه, فقط سوء تنسيق, double click بدلا من Esc

أخي الشمري, الموضوع جديد من نوعة, والأعضاء لم يشاركوا بعد مشاركات فعليه بالتطبيق, أظن ان اللعبة القادمة ستحظى بإقبال أكبر وبتطبيقات أكثر, ما رأيك أن نبدأ؟ بالنسبة للعنكبوت, بسيط جدا ولا يوجد به أي AI فقط كل ما بالموضوع هو تطبيق لمناقشاتنا في موضوعك " أداة صانع المسارات".

شكرا على المشاركة البناءة, وتمنياتي بالتوفيق

تم تعديل بواسطه High volt
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أولا أعتذر عن التأخر في طرح الديمو الجديد .. حقيقة لم اعمل شيء طوال الاسبوع الماضي .. بسبب امتلاء جدول اعمالي :P .. في أمور لاطائل منها .. يبدو أني سأغيّر طريقتي في التعلّم والتطبيق .

ورأيك في محله ان شاء الله .. اقترح لنا لعبة جديدة في موضوع الاقتراحات .. لنتفق عليه .. ( بسرعة) ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم, :)

حان الوقت لأقدم إصداري المحدّث, معذرة لتأخري, أضفت عدداً من المزايا أهمها: العناكب وحركتها, إمكانية إطلاق الرذاذ القاتل للحشرات :P , ومزايا أخرى صغيرة.

طبقت العناكب وحركتها بإستخدام طريقة نقاط الطريق التي ذكرتها سابقاً, حيث إني أقوم بتوليد خريطة لنقاط الطريق أثناء بناء المراحل بواسطة النص البرمجي build_round.py بإستخدام خوارزمية بسيطة تستخدم مبدأ الـ Recursion. (الإسلوب: ()BuildRoundWaypoints الذي يستخدم ()waypointsRecurse_)

من التغييرات الجذرية أيضاً هو جعل بيانات المراحل في ملفات منفصلة بدل أن تكون في داخل كود اللعبة, الملفات موجودة في المجلد res/rounds وهي كما قلت مبنية بإستخدام build_round.py وبياناتها الأساسية موجودة في ملف rounds_data.py.

بقي لي إضافة مراحل الـ bonus, إضافة حالة gameover, الحصول على النقاط, وبعض الأشياء الصغيرة هنا وهناك, أعتقد إني وصلت الآن إلى 70% من اللعبة. :happy:

post-115785-1217838884_thumb.jpg

تحميل لعبة BinaryLand الإصدار 02 (الحجم: 6.9 MB)

تحميل كود لعبة BinaryLand الإصدار 02 (الحجم: 955 KB)

وبالمناسبة, لقد قمت بتجربة اللعبة على Linux بدون أي تعديل بإستخدام كود البايثون طبعاً, وهي تعمل بشكل جيد. :D

تم تعديل بواسطه SandHawk
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أعرف انه من المحبط عدم وجود رد كل هذه المدة ... ولكن أعتقد أنك اعتدت على ذلك :) ..

اللعبة رائعة أخي ,, ولم أجد ما يعيبها ..ما شاء الله ..

فكرة الملفات الخارجية .. وفكرة حركة العنكبوت .. وتطبيقك الدقيق لكل خطوات اللعبة .. يوحي لنا بأنك تستطيع محاكاة ألعاب أكبر .. Metal Gear مثلا :wink: ..

لذلك .. فنحن نطمع بطرح مقالة عن " نقاط الطريق " هذه ..

ليستفيد منها الاعضاء ..

اجعل هذه على قائمة مشاريعك وجدول أعمالك :P

----

ما رأيكم لو تعيدون تحميل الديمو الجديد .. ومحاولتي الجديدة .. ( بدون فيروسات :lol: ) .

طبعا اللعبة ليست مكتملة ,,, ولا اعتقد اني سأفعل ذلك الان .. فلدي قائمة من المهام المؤجلة ..

واخباري ان كانت تعمل او لا ..

لاحظة :

اللعبة مبنية على المحرك الذري .. AGE .. لذلك لم ارفق الكود كاملا .. فقط أرفقت الجزء الخاص باللعبة أو بمنطق اللعبة .. لمن أراد الاطلاع

Binary_Land.zip

تم تعديل بواسطه الشمري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشاء الله اللعبه جيده لكن لى ملاحظه الصوت المصاحب للعبه مزعج قليلاً

عقبال لعبتك الخاصه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .