برامج لإنشاء ألعاب ثنائية الأبعاد بدون برمجة. برامج لإنشاء الألعاب


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

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

إذا كنت ترغب في إنشاء لعبتك الخاصة في وقت فراغك، فاطلع على قائمة البرامج المجانية الخاصة بذلك.

الخلاط



حزمة مجانية من البرامج الاحترافية لإنشاء الألعاب التفاعلية والرسومات الحاسوبية ثلاثية الأبعاد.

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

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

لكن ستجد دروسًا في العمل في هذا البرنامج.

المضي قدما، وخلق أكوان جديدة!

الوحدة 3D


هذه بيئة قوية لتطوير التطبيقات والألعاب، بما في ذلك الأجهزة المحمولة. تعمل الألعاب التي تم إنشاؤها باستخدام Unity 3D على أنظمة التشغيل Windows وiOS وAndroid وPlaystation 3 وXbox 360 وWii. يمكنك إنشاء ألعاب من أي نوع؛ يمكن استيراد الأنسجة والنماذج بسهولة، ويتم دعم جميع تنسيقات الصور الشائعة.

تتم كتابة البرامج النصية بشكل أساسي بلغة JavaScript، ولكن يمكن أيضًا كتابة التعليمات البرمجية بلغة C#.

ستجد مواد تدريبية حول العمل في البيئة (باللغة الإنجليزية) على الموقع الرسمي هنا.

بناء كلاسيكي

منشئ ألعاب مفتوح المصدر ثنائي وثلاثي الأبعاد. لا يلزم معرفة البرمجة للعمل. كل ما عليك فعله هو إضافة كائن وتشغيل الرسوم المتحركة.

لا يوجد إصدار باللغة الروسية، ولكن الواجهة واضحة جدًا، لذا يمكنك العمل حتى مع المعرفة الأساسية باللغة الإنجليزية.

المصمم ليس مجانيًا فحسب - بل هو مفتوح المصدر، وإذا كنت ترغب في ذلك، يمكنك تخصيصه وتعديله كما يحلو لك.

يمكنك مشاهدة دروس Construct Classic.

لعبة صانع لايت



برنامج مجاني لتطوير الألعاب البسيطة من أي نوع: ألعاب المنصات، والألغاز، والحركة، والألعاب ثلاثية الأبعاد. مناسبة للمبتدئين. يمكنك استخدام الصور والمؤثرات الخاصة بك، أو البرامج المضمنة. للوصول إلى مجموعة أكبر من الصور والمؤثرات، تحتاج إلى التسجيل.

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

دروس العمل في البرنامج للمبتدئين موجودة على هذا الموقع.

مجموعة التطوير غير الواقعية

محرك مجاني لإنشاء الألعاب. قوية للغاية، مع الكثير من الميزات والأدوات للتصورات المتقدمة والمحاكاة التفصيلية. يمكنك إنشاء ألعاب للعديد من المنصات الحديثة.

يشتمل البرنامج بالفعل على مواد ونماذج وأصوات وعفاريت ونصوص. كل ما تبقى هو الجمع بين اللعبة وإنشاء لعبتك الخاصة.

ويمكن الاطلاع على دروس الفيديو والأدلة لاستخدام البرنامج.

محرر اللعبة

محرر لإنشاء ألعاب بسيطة ثنائية الأبعاد لأنظمة التشغيل Windows، iOS، Android، Linux.

توجد مجموعات مدمجة من الرسوم المتحركة المسؤولة عن ظهور الشخصيات. يمكنك استخدام العناصر الرسومية الخاصة بك. يوفر البرنامج أيضًا مجموعة قياسية من ردود الفعل التي تحدد سلوك الشخصية في اللعبة. ولكن يمكنك أيضًا إنشاء لعبة خاصة بك باستخدام لغة البرمجة النصية الخاصة Game Editor.

3D راد



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

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

صانع اللعبة: الاستوديو

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

لا يوجد شيء غير ضروري في نافذة عمل البرنامج. الألعاب التي تم تطويرها باستخدام Game Maker: Studio هي ألعاب مشتركة بين الأنظمة الأساسية، ويمكن دمج التطبيقات الجاهزة مع Steam.

محرك نيو أكسيس ثلاثي الأبعاد

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

كل ما تبقى هو تشغيل خيالك والإبداع.

هل أنت متلهف لإنشاء لعبتك الخاصة؟ لا مشكلة. اختر البرنامج وانطلق نحو حلمك!

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

صنع الألعاب أمر صعب. كلما عرفت المزيد عن هذه العملية، كلما زاد دهشتك من أن أي شخص يتابعها بالفعل. كما قال توم فرانسيس، أحد كتاب PC Gamer السابقين، عند وصف عملية برمجة لعبة Gunpoint: "أثناء العمل على اللعبة، توصلت إلى نتيجة واحدة: لعبتي هي جنون خالص. هذا مريض في مستشفى للأمراض العقلية. لقد فقدت عقلها تمامًا، وعليك أن تكون مستعدًا لحقيقة أن كل الحجج المعقولة ستقابل بصراخ مختل هراء.

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

جيم ميكر ستوديو 2

تكلفة الترخيص: 100 دولار لنسخة الكمبيوتر الشخصي؛ النسخة التجريبية المجانية متاحة

مناسب ل: منصات قصيرة ثنائية الأبعاد وألعاب تقمص الأدوار؛ ألعاب عبر الأنظمة الأساسية

أمثلة على الألعاب: Nidhogg، Hyper Light Drifter، Undertale، خطر المطر

الايجابيات

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

يقول Alex Preston، الذي أنشأ Hyper Light Drifter، إن مجتمع محرك GameMaker يقدم مساعدة لا تقدر بثمن للمبتدئين. ويشير إلى أنه يجب على المطورين الجدد "... التواصل مع مجتمع المطورين وتعلم جميع أدوات المحرك للوصول إلى المكان الذي يحتاجون إليه - وللقيام بذلك، من المفيد طلب المشورة من المطورين المتمرسين."

السلبيات

بالطبع، من غير المرجح أن تتمكن من إنشاء لعبة يمكن نشرها على Steam على الفور. يقول إيسن: "لأن برنامج GameMaker سهل الاستخدام للغاية، غالبًا ما تنتهي المشاريع بعدم التوازن". "يعجبني أنه في المراحل الأولى من التطوير، يمكنك رسم الهيكل العظمي للعبتك بسرعة والتركيز على تصميمها، ولكن هذا يمكن أن يأتي بنتائج عكسية لاحقًا، خاصة إذا لم تلتزم بالمعايير التنظيمية!"

يشير Duncan Drummond، مؤلف كتاب Risk of Rain المحبوب، أيضًا إلى أن سهولة استخدام GameMaker يمكن أن تكون بمثابة كابوس للمطور. يقول: "يمكنك إنشاء لعبة بسرعة باستخدام محرك، ولكن إذا تجاهلت أخطائك في المراحل المبكرة، فسيؤدي ذلك لاحقًا إلى زيادة تكاليف اللعبة". يشير Drummond إلى أن تفاصيل العمل مع GameMaker تختلف تمامًا عن العمل مع المحركات الأخرى، لذا إذا كنت تخطط للتبديل إلى Unity أو أي محرك آخر في المستقبل، فمن الأفضل أن تبحث في مكان آخر.

"لا تنس حذف أعمالك القديمة! كلما بدأت لعبة من الصفر، كلما أصبحت أكثر خبرة في تصميم الألعاب." - مارك إيسن، Nidhogg

"فقط ابدا! قم بتشغيل المحرك، واقرأ الأدلة وابدأ العمل، حتى لو لم تتمكن من القيام بذلك حقًا. كلما زاد عدد الأخطاء التي ترتكبها، زادت الدروس التي تتعلمها." - Alex Preston، Hyper Light Drifter

"لا تخف من البدء! إنها طريقة مثيرة للاهتمام وبسيطة نسبيًا للتطوير، ولا تضيع وقتك." - دنكان دروموند، خطر المطر

وحدة

تكلفة الترخيص: حزمة المبتدئين المجانية، 35 دولارًا شهريًا لبرنامج Unity Plus، و125 دولارًا شهريًا لبرنامج Unity Pro

مناسب ل: أي لعبة مستقلة تقريبًا

أمثلة على الألعاب: , Galak-Z، غرب الكراهية، Cuphead

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

على موقع Unity الرسمي، يمكنك أيضًا العثور على إضافات خاصة تسمح لك بتخصيص المحرك لتطوير الألعاب ثنائية الأبعاد. على سبيل المثال، ملحق 2D Platformer المجاني أو الأدوات مثل Corgi Engine وRex Engine، التي توفر فيزياء اللعبة وعناصر التحكم والميزات المصممة خصيصًا للاعبي المنصات.

تحدثنا مع جوزيف همفري من إنكل وفيكتور طومسون من منشورات غير متماثلة، اللذين تحدثا عن تجاربهما مع Unity.

الايجابيات

سرعان ما أصبح طومسون، الذي سبق له إنشاء الألعاب بالطريقة الكلاسيكية، معجبًا بـ Unity، المحرك الذي تم استخدامه لإنشاء لعبة West of Loathing التي تم إصدارها مؤخرًا. ويقول: "بعد عامين أو ثلاثة أعوام من العمل مع المحرك، أكثر ما يثير حماستي هو مدى سرعة تجميع المفاهيم والنماذج الأولية معًا". "لقد استخدمت الكثير من المحركات المختلفة، سواء كانت صغيرة لمشاريعي الخاصة أو كبيرة لتطوير ألعاب AAA، ولكن Unity هو أفضل محرك رأيته على الإطلاق لأنه يتيح لي أن أكون الأكثر إنتاجية."

السلبيات

ومع ذلك، إذا كنت ستستخدم منصة واحدة لجميع عمليات التطوير الخاصة بك، فسوف تواجه بعض القيود. إذا وجدت خطأ في Unity، فسيتعين عليك الانتظار حتى يقوم مؤلفو المحرك بإصلاحه، وهذا ليس سريعًا دائمًا. يقول همفري: "على الرغم من أن المحرك يقول إن إصلاح الأخطاء هو أولويتهم القصوى، إلا أن مطوري الحبر ما زالوا يعتبرون تصحيح الأخطاء أحد المشاكل الرئيسية للمحرك".

"أولاً وقبل كل شيء، حاول إنشاء صورة للعبة النهائية في رأسك والتركيز عليها - لا ينبغي أن يكون هدفك النهائي هو الخبرة المكتسبة في العملية، بل المنتج النهائي. بالطبع، من الجيد أن نتعلم درسًا أو درسين من الفشل، ولكن أعتقد أنه من المهم جدًا تحديد هدف، وتعلم كل ما عليك القيام به لتحقيق هذا الهدف، وتحقيقه في النهاية. - فيكتور طومسون، ويست أوف اشمئزاز

رينبي

تكلفة الترخيص: مجانا

مناسب ل: الروايات المرئية ثنائية الأبعاد، والمحاكاة

متوافق مع: بايثون

أمثلة على الألعاب: تحيا الملكة، تناظري: قصة كراهية

Ren'Py هو محرك مفتوح المصدر سهل التعلم. على الرغم من أن الأمر يتطلب مهارات برمجة أساسية، إلا أنك في المراحل المبكرة جدًا ستحتاج فقط إلى القدرة على العمل باستخدام معالج النصوص وتطبيقات تحرير الصور. هذه نقطة انطلاق مناسبة لأولئك الذين يخططون لتعلم لغة برمجة بايثون في المستقبل.

الايجابيات

يقول بنسلي: "توفر طبيعة Ren’Py مفتوحة المصدر ومتعددة المنصات مجموعة كبيرة من الخيارات لجميع مستخدمي المحرك". "أعتقد أيضًا أنه من المفيد أن يكون المحرك مصممًا للمبتدئين، ولكنه في الوقت نفسه يتطلب إجراء تغييرات على رمز برنامج اللعبة. إنها أفضل من واجهة السحب والإفلات الرسومية لأنها توضح أنه لا يوجد شيء مخيف في البرمجة."
يعد Ren’Py مناسبًا لك إذا كنت خائفًا من احتمال إنشاء لعبة من الصفر:

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

السلبيات

Ren'Py محدود بعض الشيء من حيث الرسومات وميزات اللعب. إذا كنت تنوي إنشاء ألعاب بتقنية 3D وLive2D ونظام الضرر وميزات أخرى، فعليك البحث عن خيارات أخرى.

حبر

تكلفة الترخيص: مجانا

مناسب ل: العاب مغامرات نصية

نحن ضميرنا مع: الوحدة، C#، HTML

أمثلة على الألعاب: 80 يومًا يا سحر!

يعد Ink إضافة مجانية جيدة لـ Unity إذا كنت ترغب في إضفاء الإثارة على لعبتك من خلال سلاسل الحوار وسرد القصص الموسع. إنه سهل التعلم، ولا يستخدم تعليمات برمجية متقدمة، ويتكامل بسلاسة مع Unity. وكما يقول منشئ الحبر جوزيف همفري، فإن هذا المحرك هو محرك "متوسط" - بعد إنشاء نص بالحبر، يمكن نقله إلى لعبة أكبر باستخدام محرك Unity. ومع ذلك، يتيح لك Inky Editor أيضًا إنشاء ألعاب الويب.

الايجابيات

إنشاء نص كبير يحتوي على الكثير من سلاسل الحوار يمكن أن يصبح سريعًا فوضى مربكة، لذا سيساعدك الحبر على تجنب الضياع في هذه العملية. يقول همفري: "يمكن لمؤلفي اللعبة استخدام أدوات المحرك لإنشاء حوار ونص بتنسيق نصي تفاعلي سهل الاستخدام مع إشارات رئيسية". "يمكن لمحرك الحبر، الذي يعمل داخل Unity، قراءة هذه النصوص وإخراج النص إلى الشاشات داخل اللعبة نفسها."

تلعب المصادر المفتوحة دورًا مهمًا في تطوير المشاريع الطموحة. يلاحظ همفري أن "النص الذي يتم إنشاؤه في محرك الحبر لا يلزم بالضرورة عرضه كنص. على سبيل المثال، في لعبة Heaven’s Vault، يقوم محرك الحبر بإنشاء سيناريو ديناميكي تفسره اللعبة نفسها على شكل رواية مصورة تفاعلية مع عناصر المغامرة.

يعد الحبر أيضًا أداة رائعة لأولئك الذين يهتمون أكثر بكتابة نصوص الألعاب بدلاً من البرمجة البحتة. ويضيف همفري: "...إن عدد الكتاب الذين يستخدمون الحبر لكتابة القصص التفاعلية يتزايد باستمرار". "حيث طعم الماء مثل النبيذ هو أحد الأمثلة على ذلك. تم إنشاؤه بواسطة مؤلفي لعبة Gone Home باستخدام محرك الحبر. عمل في اللعبة كتاب سيناريو مشهورون مثل لي ألكسندر وإميلي شورت وكارا إليسون. لذا، إذا كنت تستمتع بكتابة النصوص ومهتمًا بتطوير الألعاب، فقد يكون الحبر مكانًا رائعًا للبدء."

السلبيات

يُفضل استخدام الحبر للألعاب التي تم تطويرها باستخدام محرك Unity. يقول همفري إن "الحبر ليس بديلاً عن Unity - إنه مجرد إضافة. علاوة على ذلك، فإن الحبر هو أداة البرمجة النصية التفاعلية الوحيدة التي تم إنشاؤها عمدًا كوسيلة وسيطة."

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

في بداية عام 2017، كتبنا عن الظهور المفاجئ لـ RPG Maker على منصة Steam وكيف اكتسب المحرك شعبية سريعة بين المطورين المستقلين الطموحين. ولكن هناك أدوات أخرى تستحق الاهتمام بها:

هاكسفليكسيلمفتوح المصدر وعبر الأنظمة الأساسية.

ستينسيل– أداة لإنشاء الألعاب دون استخدام البرمجة.

بناء- مجاني، على أساس دايركت 9، أداة إنشاء ألعاب لنظام التشغيل Windows مصممة لإنشاء ألعاب ثنائية الأبعاد. يستخدم نظامًا مناسبًا وبسيطًا قائمًا على الأحداث. باستخدامه، يمكنك بسهولة إنشاء القواعد التي ستعمل بها لعبتك.

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

بناءليس برنامجًا تجاريًا وتم تطويره بواسطة متطوعين. يمكنك الآن تنزيل الإصدار الكامل المميز من البرنامج مجانًا دون أي نوافذ أو إعلانات أو قيود مزعجة. النسخة الكاملة الوظائف من البرنامج مجانية تمامًا!

نفسي بناءوزعت بموجب ترخيص GPL. ومع ذلك، لا ينطبق هذا الترخيص على أي أعمال تم إنشاؤها في البرنامج. يمكنك توزيع وبيع أعمالك (الألعاب والبرامج وغيرها) التي تم إنشاؤها باستخدام بناء، وقم أيضًا بإصدارها كمصدر مغلق.

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

وفيما يلي وصف عام للميزات الرئيسية للبرنامج. بناء.

واجهه المستخدم

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

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

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

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

قوائم الأحداث

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

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

يمكنك تجربته الآن، خلال 5 دقائق فقط، وترى بنفسك مدى سهولة العمل في البرنامج بناء.

الأشياء والسلوكيات

بناءيشمل أكثر من 60 كائنًا و20 سلوكًا مدمجًا. باستخدام الكائنات، يمكنك إنشاء النقوش المتحركة والتحكم في اللعبة وتشغيل الموسيقى والأصوات وإنشاء تأثيرات الجسيمات وغير ذلك الكثير.

هندسة الكائنات بناءيمنح الفرصة لأي مطور C++ مهتم باستخدام SDK لكتابة هذه العناصر واستخدامها ككائنات بناء، والذي يسمح لك بتوسيع إمكانيات البرنامج بلا حدود.

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

التأثيرات والتصور

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

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

لعبة لغز عيد الميلاد. مغامرة العام الجديد في لغز منطقي من نوع Match-3 من ماري جين. في الوقت المخصص، عليك كسر جميع الرقائق عن طريق وضعها 3 أو أكثر على التوالي. ستبقيك الرسومات والصوت المذهلين ملتصقًا بشاشتك لفترة طويلة. تحتوي اللعبة على 3 مستويات فقط، وفي نهايتها سترى شاشة توقف جميلة ورائعة!

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

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

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

مجتمع

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

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

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

الرجاء الإبلاغ عن أي أخطاء إلى المسؤول (الموقع باللغة الإنجليزية).

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

انتبه: يجب نشر رسائل الخطأ الموجودة على متتبع SourceForge.net باللغة الإنجليزية حصريًا!

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

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

للحصول على مثال لتقرير خطأ جيد، انظر إلى السلوك المنصة (الموقع باللغة الإنجليزية).

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

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

Game Maker هو برنامج مصمم بسيط لإنشاء ألعاب ثنائية وثلاثية الأبعاد، مما يسمح لك بإنشاء ألعاب لعدد كبير من المنصات: Windows وiOS وLinux وAndroid وXbox One وغيرها. ولكن يجب تكوين اللعبة لكل نظام تشغيل، نظرًا لأن Game Maker لا يضمن أن اللعبة ستعمل بنفس الطريقة في كل مكان.

ميزة المنشئ هي أنه يحتوي على حاجز دخول منخفض. هذا يعني أنه إذا لم تقم بتطوير الألعاب من قبل، فيمكنك تنزيل Game Maker بأمان - فهو لا يتطلب أي معرفة خاصة بالبرمجة.

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

عملية إنشاء الألعاب هنا بسيطة للغاية: إنشاء النقوش المتحركة في المحرر (يمكنك تحميل رسومات جاهزة)، وإنشاء كائنات ذات خصائص مختلفة وإنشاء مستويات (غرف) في المحرر. سرعة تطوير اللعبة على Game Maker أسرع بكثير من المحركات الأخرى المشابهة.

الوحدة 3D

يعد Unity 3D أحد أقوى محركات الألعاب وأكثرها شهرة. بمساعدتها، يمكنك إنشاء ألعاب بأي تعقيد وأي نوع، وذلك باستخدام نفس واجهة البرمجة المرئية. على الرغم من أن إنشاء ألعاب كاملة في البداية على Unity3D كان يتطلب معرفة ضمنية بلغات البرمجة مثل JavaScript أو C#، إلا أنها ضرورية للمشاريع واسعة النطاق.

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

منصة مشتركة، واستقرار، وأداء عالي، وواجهة سهلة الاستخدام - هذه مجرد قائمة صغيرة من مزايا محرك Unity 3D. هنا يمكنك إنشاء أي شيء تقريبًا: من Tetris إلى GTA 5. لكن البرنامج هو الأنسب لمطوري الألعاب المستقلة.

إذا قررت إدراج لعبتك في PlayMarket مقابل شيء آخر غير مجاني، فسيتعين عليك أن تدفع لمطوري Unity 3D نسبة مئوية معينة من المبيعات. وللاستخدام غير التجاري البرنامج مجاني.

والعودة إلى المصممين مرة أخرى! Clickteam Fusion هو برنامج لإنشاء ألعاب ثنائية الأبعاد باستخدام واجهة السحب والإسقاط. هنا لا تحتاج إلى برمجة، لأنك ستقوم بتجميع الألعاب قطعة قطعة، مثل مجموعة البناء. ولكن يمكنك أيضًا إنشاء ألعاب عن طريق كتابة التعليمات البرمجية لكل كائن.

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

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

Clickteam Fusion ليس باهظ الثمن مقارنة بالبرامج الأخرى، ويمكنك أيضًا تنزيل نسخة تجريبية مجانية من الموقع الرسمي. لسوء الحظ، البرنامج غير مناسب للألعاب الكبيرة، ولكنه مناسب تمامًا للأروقة الصغيرة.

برنامج آخر جيد جدًا لإنشاء ألعاب ثنائية الأبعاد هو Construct 2. باستخدام البرمجة المرئية، يمكنك إنشاء ألعاب لمختلف المنصات الشائعة وغير الشائعة.

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

بالإضافة إلى المجموعات القياسية من المكونات الإضافية والسلوكيات والمؤثرات المرئية، يمكنك إضافتها بنفسك عن طريق التنزيل من الإنترنت، أو إذا كنت مستخدمًا متمرسًا، فاكتب المكونات الإضافية والسلوكيات والتأثيرات في JavaScript.

ولكن حيث توجد إيجابيات، هناك أيضا سلبيات. العيب الرئيسي لـ Construct 2 هو أن التصدير إلى منصات إضافية يتم فقط باستخدام برامج الطرف الثالث.

يعد CryEngine أحد أقوى المحركات لإنشاء ألعاب ثلاثية الأبعاد، حيث تفوق إمكانياتها الرسومية جميع البرامج المماثلة. هنا تم إنشاء ألعاب مشهورة مثل Crysis و Far Cry. وكل هذا ممكن بدون برمجة.

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

يدعم نظام الفيزياء في EdgeEngin الحركية العكسية للشخصيات والمركبات وفيزياء الأجسام الصلبة واللينة والسوائل والأنسجة. لذا فإن الكائنات الموجودة في لعبتك سوف تتصرف بشكل واقعي تمامًا.

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

Game Editor هو منشئ ألعاب آخر في قائمتنا يشبه صانع الألعاب المبسط. هنا يمكنك إنشاء ألعاب بسيطة ثنائية الأبعاد دون أي معرفة برمجية خاصة.

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

أيضًا، باستخدام Game Editor، يمكنك إنشاء ألعاب لكل من أجهزة الكمبيوتر والهواتف. للقيام بذلك، ما عليك سوى حفظ اللعبة بالتنسيق الصحيح.

لسوء الحظ، من غير المرجح أن تقوم بإنشاء مشروع كبير باستخدام Game Editor، حيث سيستغرق الأمر الكثير من الوقت والجهد. عيب آخر هو أن المطورين تخلوا عن مشروعهم ولا يتوقع أي تحديثات حتى الآن.

وهنا منافس لـ Unity 3D وCryEngin - Unreal Development Kit. يعد هذا محرك ألعاب قويًا آخر لتطوير الألعاب ثلاثية الأبعاد للعديد من المنصات الشائعة. يمكن أيضًا إنشاء الألعاب هنا دون استخدام لغات البرمجة، ولكن ببساطة عن طريق تعيين أحداث جاهزة للكائنات.

على الرغم من تعقيد إتقان البرنامج، تمنحك Unreal Development Kit فرصًا رائعة لإنشاء الألعاب. ننصحك بتعلم كيفية استخدامها جميعًا. لحسن الحظ، سوف تجد الكثير من المواد على شبكة الإنترنت.

للاستخدام غير التجاري، يمكنك تنزيل البرنامج مجانًا. ولكن بمجرد أن تبدأ في تلقي الأموال للعبة، عليك أن تدفع الفائدة للمطورين، اعتمادا على المبلغ المستلم.

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

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

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

من الميزات الخاصة لبرنامج Code Game Lab أنه برنامج مجاني باللغة الروسية. وهذا، مع العلم، نادر جدًا بين برامج تطوير الألعاب الجادة. هناك أيضًا الكثير من المواد التعليمية التي يتم إجراؤها في شكل مثير للاهتمام من المهام.

ولكن بغض النظر عن مدى جودة البرنامج، هناك أيضًا عيوب. Kodu Game Lab بسيط، نعم. لكنها لا تحتوي على العديد من الأدوات التي نرغب فيها. تتطلب بيئة التطوير هذه أيضًا الكثير من موارد النظام.

يعد 3D Rad برنامجًا مثيرًا للاهتمام لإنشاء ألعاب ثلاثية الأبعاد لجهاز الكمبيوتر الخاص بك. كما هو الحال مع جميع البرامج المذكورة أعلاه، فإنه يستخدم واجهة برمجة مرئية، والتي سوف ترضي المطورين المبتدئين. مع مرور الوقت، سوف تتعلم كيفية إنشاء البرامج النصية في هذا البرنامج.

يعد هذا أحد البرامج القليلة المجانية حتى للاستخدام التجاري. يجب شراء جميع محركات الألعاب تقريبًا أو خصم نسبة مئوية من الدخل. في 3D Rad، يمكنك إنشاء لعبة من أي نوع وكسب المال منها.

ومن المثير للاهتمام أنه في 3D Rad يمكنك إنشاء لعبة متعددة اللاعبين أو لعبة على الشبكة وحتى إعداد دردشة للعبة. وهذه ميزة أخرى مثيرة للاهتمام لهذا البرنامج.

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

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

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

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

هذا مجرد جزء صغير من جميع البرامج الموجودة لإنشاء الألعاب. جميع البرامج الموجودة في هذه القائمة تقريبًا مدفوعة الثمن، ولكن يمكنك دائمًا تنزيل نسخة تجريبية وتحديد ما إذا كانت تستحق المال. نأمل أن تجد شيئًا لنفسك هنا ويمكننا رؤية الألعاب التي تنشئها قريبًا.



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

الخطوة 1. توصل إلى فكرة اللعبة
على سبيل المثال، لنأخذ فكرة بسيطة إلى حد ما:

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


الخطوة 2. إنشاء مشروع
في Android Studio، حدد File > New > New Project من القائمة العلوية.

هنا ندخل اسم التطبيق والمجال والمسار. انقر فوق {التالي.

هنا يمكنك إدخال إصدار أندرويد. يمكنك أيضًا اختيار ساعة وتلفزيون Android. لكنني لست متأكدًا من أن تطبيقنا سيعمل على كل هذا. لذلك من الأفضل إدخال كل شيء كما في لقطة الشاشة. انقر فوق {التالي.

هنا يجب علينا تحديد نشاط فارغ. وانقر فوق التالي.

هنا نترك كل شيء كما هو ونضغط على إنهاء. لذلك تم إنشاء المشروع. دعنا ننتقل إلى الخطوة الثالثة.

الخطوة 3. أضف الصور

الخطوة 5. قم بتحرير فئة MainActivity

أولاً، أضف أدوات View.OnTouchListener إلى تعريف الفئة. سيكون تعريف الفئة الآن كما يلي:

يقوم MainActivity من الفئة العامة بتوسيع AppCompatActivity بتنفيذ View.OnTouchListener (
دعونا نضيف المتغيرات الثابتة (متغيرات الفئة) التي نحتاجها إلى الفصل:

القيمة المنطقية الثابتة العامة هيLeftPressed = false; // الضغط على الزر الأيسر public static boolean isRightPressed = false; // الضغط على الزر الأيمن
في الإجراء المحمي باطلة onCreate(Bundle saveInstanceState) (
أضف السطور:

GameView gameView = new GameView(this); // إنشاء gameView LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // ابحث عن gameLayout gameLayout.addView(gameView); // وأضف زر عرض اللعبة إليه leftButton = (Button) findViewById(R.id.leftButton); // ابحث عن الأزرار Button rightButton = (Button) findViewById(R.id.rightButton); leftButton.setOnTouchListener(this); // وأضف هذه الفئة كمستمع (سيعمل onTouch عند الضغط عليه) rightButton.setOnTouchListener(this);
فئات التخطيط الخطي والزر وما إلى ذلك. يتم تمييزها باللون الأحمر لأنه لم تتم إضافتها بعد إلى الاستيراد.
لإضافة التمييز الأحمر وإزالته إلى "استيراد"، تحتاج إلى الضغط على Alt+Enter لكل منهما.
سيتم تمييز GameView باللون الأحمر لأن هذه الفئة غير موجودة بعد. سنقوم بإنشائه لاحقا.

الآن نضيف الإجراء:

منطقية عامة onTouch (زر العرض، حركة MotionEvent) ( التبديل (button.getId ()) ( // تحديد حالة الزر R.id.leftButton: التبديل (motion.getAction ()) ( // تحديد ما إذا تم الضغط عليه أو تحريره case MotionEvent.down: isLeftPressed = true;break; case MotionEvent.ACTION_UP: isLeftPressed = false; ACTION_DOWN: isRightPressed = true;
إذا كان أي شخص في حيرة؟ هذا هو الشكل الذي يجب أن تبدو عليه فئة MainActivity الناتجة:

الحزمة com.spaceavoider.spaceavoider؛ import android.support.v7.app.AppCompatActivity; استيراد android.os.Bundle؛ import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; الطبقة العامة MainActivity تمتد AppCompatActivity تنفذ View.OnTouchListener ( boolean static public isLeftPressed = false؛ // يتم الضغط على الزر الأيسر public static boolean isRightPressed = false؛ // يتم الضغط على الزر الأيمن @Override protected void onCreate(Bundle saveInstanceState) ( super.onCreate( saveInstanceState) ; setContentView(R.layout.activity_main); GameView = new GameView(this);// إنشاء gameView LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); ; / وأضف إليه gameView Button leftButton = (Button) findViewById(R.id.leftButton); // ابحث عن الأزرار Button rightButton = (Button) findViewById(R.id.rightButton); هذه الفئة كمستمع (عند الضغط عليها، سيعمل onTouch) rightButton.setOnTouchListener(this); public boolean onTouch(View Button, MotionEventmotion) ( Switch(button.getId()) ( // تحديد حالة الزر R.id. leftButton: التبديل (motion.getAction()) (/ تحديد ما إذا كانت الحالة تم الضغط عليها أم تحريرها MotionEvent.ACTION_DOWN: isLeftPressed = true; استراحة؛
إذن، فئة MainActivity جاهزة! يبدأ فئة GameView التي لم يتم إنشاؤها بعد. وعند الضغط على الزر الأيسر، فإن المتغير الثابت هوLeftPressed = true، وعند الضغط على الزر الأيمن، isRightPressed = true. هذا في الأساس كل ما يفعله.

أولا، دعونا نتأكد من أن سفينة الفضاء معروضة على الشاشة وأنها تتحرك عند الضغط على أزرار التحكم. سنترك الكويكبات لوقت لاحق.

الخطوة 6: إنشاء فئة GameView

الآن دعونا أخيرًا ننشئ فئة GameView المفقودة. اذا هيا بنا نبدأ. دعونا نضيف امتدادات SurfaceView لتطبيقات Runnable إلى تعريف الفئة. تتميز الأجهزة المحمولة بدرجات دقة شاشة مختلفة. يمكن أن يكون هاتفًا صغيرًا قديمًا بدقة 480 × 800 أو جهازًا لوحيًا كبيرًا بدقة 1800 × 2560. ولكي تبدو اللعبة بنفس الشكل على جميع الأجهزة، قمت بتقسيم الشاشة إلى 20 جزءًا أفقيًا و 28 رأسيًا. لقد أطلقت على وحدة القياس الناتجة اسم الوحدة. يمكنك اختيار أرقام أخرى. الشيء الرئيسي هو أن العلاقة بينهما محفوظة تقريبًا، وإلا سيتم إطالة الصورة أو ضغطها.

int العام الثابت maxX = 20؛ // الحجم الأفقي public static int maxY = 28; // الحجم العمودي public static float UnitW = 0; // بكسل لكل وحدة أفقيًا public static float UnitH = 0; // بكسل لكل وحدة عموديا
سنقوم بحساب الوحدة W والوحدة W لاحقًا. سنحتاج أيضًا إلى متغيرات أخرى:

أول وقت منطقي خاص = صحيح؛ gameRunning منطقية خاصة = صحيح؛ سفينة خاصة؛ موضوع خاص gameThread = null; طلاء الدهان الخاص؛ قماش قماش خاص؛ SurfaceHolder الخاص surfaceHolder؛
سيكون المنشئ مثل هذا:

Public GameView(سياق السياق) (super(context); // تهيئة الكائنات لرسم surfaceHolder = getHolder(); Paint = new Paint(); // تهيئة الخيط gameThread = new Thread(this); gameThread.start(); )
ستحتوي طريقة التشغيل () على حلقة لا نهائية. في بداية الحلقة، يتم تنفيذ طريقة التحديث ().
والتي سوف تحسب الإحداثيات الجديدة للسفينة. ثم تقوم طريقة draw() برسم السفينة على الشاشة. وفي النهاية، ستتوقف طريقة التحكم () لمدة 17 مللي ثانية. بعد مرور 17 مللي ثانية، سيتم تشغيل الدالة run() مرة أخرى. وهكذا حتى يصبح المتغير gameRunning == true. هذه هي الطرق:

@Override public void run() ( while (gameRunning) ( update(); draw(); control(); ) ) تحديث باطل خاص() ( if(!firstTime) ( ship.update(); ) ) رسم باطل خاص () () ( if (surfaceHolder.getSurface().isValid()) ( // تحقق مما إذا كان السطح صالحًا if(firstTime)( // التهيئة عند الإطلاق الأول firstTime = false; UnitW = surfaceHolder.getSurfaceFrame().width() /maxX ; // احسب عدد البكسل في الوحدة UnitH = surfaceHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); .drawColor(Color.BLACK); // املأ الخلفية باللون الأسود ship.drow(paint, Canvas);// ارسم سطح السفينة.unlockCanvasAndPost(canvas)); // توقف مؤقتًا لمدة 17 مللي ثانية حاول ( gameThread.sleep(17); ) Catch (InterruptedException e) ( e.printStackTrace(); ) )
انتبه إلى التهيئة عند البدء لأول مرة. هناك نحسب عدد البكسلات في الوحدة ونضيف السفينة. نحن لم نصنع السفينة بعد لكن أولاً سنقوم بإنشاء فئتها الأصلية.

الخطوة 7. قم بإنشاء فئة SpaceBody

سيكون أصل فئتي السفن والكويكبات. وسوف يحتوي على جميع المتغيرات والأساليب المشتركة بين هاتين الفئتين. إضافة المتغيرات:

تعويم محمي x؛ // الإحداثيات المحمية تعويم ذ؛ حجم الطفو المحمي؛ // حجم سرعة التعويم المحمية؛ // السرعة المحمية int bitmapId؛ // معرف الصورة صورة نقطية محمية؛ // صورة
والأساليب

Void init(Context context) (// ضغط الصورة إلى الحجم المطلوب Bitmap cBitmap = BitmapFactory.decodeResource(context.getResources(), bitmapId); bitmap = Bitmap.createScaledBitmap(cBitmap, (int)(size * GameView.unitW) ، ( int) (size * GameView.unitH)، false)؛ cBitmap.recycle () ؛ تحديث void ()) ( // سيتم حساب الإحداثيات الجديدة هنا) void drow (Paint Paint، Canvas Canvas) ( // رسم أ صورة Canvas.drawBitmap (صورة نقطية، x*GameView.unitW، y*GameView.unitH، طلاء)؛
الخطوة 8. قم بإنشاء فئة السفينة

الآن لنقم بإنشاء فئة السفينة. إنه يرث فئة SpaceBody، لذلك سنضيف امتدادات SpaceBody إلى تعريف الفئة.

دعونا نكتب المنشئ:

السفينة العامة (سياق السياق) ( bitmapId = R.drawable.ship؛ // تحديد حجم المعلمات الأولية = 5؛ x=7؛ y=GameView.maxY - الحجم - 1؛ السرعة = (float) 0.2؛ init(context) // تهيئة السفينة)
وتجاوز طريقة التحديث ().

@Override public void update() ( // حرك السفينة اعتمادًا على الزر الذي تم الضغط عليه if(MainActivity.isLeftPressed && x >= 0)( x -= speed; ) if(MainActivity.isRightPressed && x<= GameView.maxX - 5){ x += speed; } }
وبهذا تصبح سفينة الفضاء جاهزة! نقوم بتجميع كل شيء وتشغيله. يجب أن تظهر سفينة الفضاء على الشاشة. عند الضغط على الأزرار يجب أن تتحرك إلى اليسار واليمين. الآن نضيف الكويكبات التي تسقط من الأعلى. إذا اصطدمت بسفينة، تنتهي اللعبة.

الخطوة 9. قم بإنشاء فئة الكويكب

دعونا نضيف فئة الكويكب. كما أنه يرث فئة SpaceBody، لذلك سنضيف امتدادات SpaceBody إلى تعريف الفئة.

دعونا نضيف المتغيرات التي نحتاجها:

نصف القطر الخاص = 2؛ // نصف القطر الخاص float minSpeed ​​​​= (float) 0.1؛ // الحد الأدنى للسرعة Private float maxSpeed ​​​​= (float) 0.5; // السرعة القصوى
يجب أن يظهر الكويكب في نقطة عشوائية أعلى الشاشة ويطير للأسفل بسرعة عشوائية. للقيام بذلك، يتم تحديد x والسرعة باستخدام مولد أرقام عشوائي في مُنشئه.

الكويكب العام (سياق السياق) ( Random Random = new Random(); bitmapId = R.drawable.asteroid; y=0; x = Random.nextInt(GameView.maxX) - نصف القطر; الحجم = نصف القطر*2; السرعة = minSpeed ​​​​+ (maxSpeed ​​​​- minSpeed) * Random.nextFloat();
يجب أن يتحرك الكويكب عموديًا إلى الأسفل بسرعة معينة. لذلك، في طريقة التحديث () نضيف السرعة إلى الإحداثي x.

@Override تحديث الفراغ العام () (y += speed;)
سنحتاج أيضًا إلى طريقة لتحديد ما إذا كان الكويكب قد اصطدم بسفينة أم لا.

تصادم منطقي عام (float shipX، float shipY، float shipSize) (return !(((x+size)< shipX)||(x >(shipX+shipSize))||((ص+حجم)< shipY)||(y >(shipY+shipSize))); )
دعونا نلقي نظرة فاحصة على ذلك. للتبسيط، نعتبر السفينة والكويكب مربعين. هنا ذهبت من العكس. أي أنني أحدد متى لا تتقاطع المربعات.

((س+الحجم)< shipX) - корабль слева от астероида.
(x > (shipX+shipSize)) - السفينة الموجودة على يمين الكويكب.
((ص+الحجم)< shipY) - корабль сверху астероида.
(y > (shipY+shipSize)) - السفينة من أسفل الكويكب.

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

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

يمكنك أن تقرأ عن تحديد تقاطع الأشكال الأكثر تعقيدًا.

الخطوة 10. أضف الكويكبات إلى GameView

إضافة متغيرات إلى GameView:

قائمة المصفوفات الخاصة الكويكبات = new ArrayList<>()؛ // سيتم تخزين الكويكبات هنا Private Final int ASTEROID_INTERVAL = 50; // الوقت الذي تظهر بعده الكويكبات (في التكرارات) public int currentTime = 0;
نضيف أيضًا طريقتين:

Private void checkCollision())(/ مر عبر جميع الكويكبات وتحقق مما إذا كان أحدها يلمس السفينة for (Asteroid asteroid: asteroids) ( if(asteroid.isCollision(ship.x, ship.y, ship.size)) ( // خسر اللاعب gameRunning = false; // أوقف اللعبة // TODO أضف الرسوم المتحركة للانفجار ) ) ) public void checkIfNewAsteroid())( // كل 50 تكرارًا تضيف كويكبًا جديدًا if(currentTime >= ASTEROID_INTERVAL)( Asteroid Asteroid = new Asteroid(getContext() ); asteroids.add(asteroid);
وفي طريقة run() نضيف استدعاءات لهذه الطرق قبل استدعاء control().

@Override public void run() ( while (gameRunning) ( update(); draw(); checkCollision(); checkIfNewAsteroid(); control(); ) )
بعد ذلك، في طريقة التحديث () نضيف حلقة تتكرر عبر جميع الكويكبات وتستدعي طريقة التحديث () عليها.

تحديث باطل خاص () ( if(!firstTime) ( ship.update(); for (الكويكب الكويكب: الكويكبات) ( asteroid.update(); ) ) )
نضيف نفس الحلقة إلى طريقة draw().

رسم الفراغ الخاص () ( if (surfaceHolder.getSurface().isValid()) ( // تحقق مما إذا كان السطح صالحًا if(firstTime)( // التهيئة عند الإطلاق الأول firstTime = false; UnitW = surfaceHolder.getSurfaceFrame(). width()/maxX; // احسب عدد البكسلات في الوحدة UnitH = surfaceHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); lockCanvas(); أغلق اللوحة Canvas.drawColor(Color.BLACK); // املأ الخلفية باللون الأسود ship.drow(paint, Canvas);// ارسم السفينة for(الكويكب الكويكب: الكويكبات)(/ ارسم الكويكبات asteroid.drow(paint, Canvas); surfaceHolder.unlockCanvasAndPost(canvas);
هذا كل شئ! أبسط لعبة ثنائية الأبعاد جاهزة. دعونا نجمع ونجري ونرى ما سيحدث!
إذا كان أي شخص مرتبكًا أو لم يعمل شيء ما، يمكنك تنزيل المصدر.

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

هذا كل شئ. اكتب التعليقات والأسئلة والمواضيع التي تهمك للمتابعة.