قم بتنزيل تطبيق الوحدة ثلاثي الأبعاد لنظام Android. استخدام الوحدة لتطوير التطبيقات. كيفية إنشاء الألعاب في Unity

يتطلب تطوير الألعاب لأجهزة Android OS نهجًا مشابهًا للتطوير لنظام iOS. من ناحية أخرى ، لا تخضع أجهزة أجهزة Android لمعايير واضحة ، مما يجعل من الضروري حل المشكلات الغائبة عند العمل مع iOS. هناك أيضًا اختلافات بين إصداري Android و iOS من Unity.

إعداد بيئة تطوير Android

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

الوصول إلى ميزات Android

توفر الوحدة واجهة برمجة تطبيقات للوصول إلى مدخلات وإعدادات Android. يتم توثيق الفئات المتاحة في صفحة Code for Android Assemblies.

ربط كود C أو C ++ أو Java بالنصوص البرمجية

تتيح لك الوحدة استدعاء الوظائف المكتوبة بلغة C / C ++ مباشرة من البرامج النصية (يمكن تسمية وظائف Java بشكل غير مباشر). لمعرفة كيفية الوصول إلى الوظائف من التعليمات البرمجية الأصلية من Unity ، قم بزيارة صفحة إنشاء المكون الإضافي لنظام Android.

استبعاد الانسداد (قص الهندسة غير المرئية)

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

تخصيص شاشة بدء التشغيل

يمكن تخصيص شاشة البداية التي تظهر عند بدء اللعبة - راجع هذه الصفحة لمزيد من المعلومات.

استكشاف الأخطاء وإصلاحها والإبلاغ عن الأخطاء

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

كيف يختلف Unity لنظام Android عن إصدار سطح المكتب

جافا سكريبت مع كتابة قوية

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

بينما يدعم Unity Android مواد DXT / PVRTC / ATC ، ستقوم Unity بفك ضغط الأنسجة إلى تنسيق RGB (A) في وقت التشغيل إذا كانت طرق الضغط هذه غير مدعومة على جهاز معين. يمكن أن يؤثر هذا بشكل خطير على أداء عرض GPU ، لذلك يوصى باستخدام تنسيق ETC. إنه المعيار الفعلي لنظام Android ويجب دعمه بواسطة جميع الأجهزة الحديثة. من ناحية أخرى ، لا يدعم ETC قناة ألفا ، وفي بعض الأحيان تكون مواد RGBA ذات 16 بت هي الخيار الأفضل من حيث الجودة والحجم وسرعة التقديم حيث تكون هناك حاجة إلى قناة ألفا.

المشاهدات بعد: 19374

تحدثنا عن كيفية إنشاء لعبتك الخاصة على Android باستخدام Unreal Engine. في هذه المقالة ، سنلقي نظرة على محرك تطوير ألعاب آخر مشهور بنفس القدر - وحدة.

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

بشكل منفصل ، تجدر الإشارة إلى نظام الاشتراك ، حيث أن Unity ليس منتجًا مجانيًا تمامًا. هناك عدة أنواع من الاشتراكات:

  • شخصي. نسخة مجانية تحتوي على جميع الميزات الرئيسية للمحرك. لديها القيد التالي: يجب ألا يتجاوز الدخل السنوي أو مبلغ الأموال التي يتم جمعها 100000$ .
  • زائد. لكل 35 دولارًا في الشهريتم توفير العديد من التقارير والتحليلات ، بالإضافة إلى القدرة على تغيير شاشة البداية ، 20% -الخصم على المشتريات في متجر الأصولومختلف الفوائد الطفيفة. لديها القيد التالي: يجب ألا يتجاوز الدخل للسنة أو مبلغ الأموال التي تم جمعها 200000$ .
  • طليعة. لكل 125 دولارًا شهريًايشمل جميع مزايا الإصدار زائدبالإضافة إلى الخدمة الاحترافية والدعم المتميز. لا قيود على دوران أو مبلغ الأموال.
  • إصدارات منفصلة للأعمال (تستخدمها الشركات الكبيرة).

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

الخطوة 1: قم بتثبيت الوحدة

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

سيُطلب منك بعد ذلك قبول شروط الاستخدام وتنزيل برنامج التثبيت. يمكنك أيضا التحقق متطلبات النظامللعمل مع الوحدة.

بعد تشغيل برنامج التثبيت ، سيُطلب منك تحديد المكونات المراد تثبيتها. نظرًا لأننا نحتاج إلى إنشاء تطبيق Android ، فسنحدد المربع دعم Android Build. أيضًا ، إذا رغبت في ذلك ، بدلاً من Unity ، يمكنك تثبيت مجتمع Visual Studio 2017للبرمجة على سي #.

بعد ذلك ، كل ما تبقى هو اختيار مسار التثبيت والبدء في تثبيت Unity.

الخطوة الثانية: التسجيل وإنشاء الوحدة

بعد الانتهاء من التثبيت وتشغيل Unity ، يُطلب منا تسجيل الدخول باستخدام حسابنا.

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

في النهاية ، يُقترح إجراء مسح صغير تحتاج فيه إلى الإجابة على ما تفعله ولأي غرض تقوم بتثبيت Unity.

الخطوة 3. إنشاء مشروع جديد

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

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

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

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

لفتح متجر الأصول ، تحتاج في القائمة نافذة او شباكيختار متجر الأصول(مجموعة المفاتيح السيطرة -9).

ستفتح نافذة المتجر. أدخل في شريط البحث " لعبة Flappy Bird على غرار لعبة"وافتح مثالًا مجانيًا سنستخدمه في مشروعنا.

النقر تحميلوبالتالي بعد تنزيله ، يمكنك بعد ذلك استيراده إلى مشروعك. للقيام بذلك ، انقر فوق يستورد، وبعد ذلك سيظهر تحذير بأنه سيتم تغيير إعدادات المشروع بعد الاستيراد.

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

بمجرد اكتمال الاستيراد ، سترى الملفات الجديدة في متصفح المشروع. هذه هي ملفات اللعبة. لفتح المشهد في المحرر ، قم بتوسيع فلابي بيرد ستايل - مشاهدوانقر نقرًا مزدوجًا فوق رئيسي.

نتيجة لذلك ، سيظهر مشهد اللعبة في نافذة محرر ثلاثي الأبعاد.

يمكنك التحقق من كيفية عمل اللعبة مباشرة في Unity بالنقر فوق الزر لعبفوق نافذة المحرر.

الخطوة الرابعة: تكوين أدوات Android

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

لتجميع اللعبة الناتجة على Android ، تحتاج إلى تثبيت الأدوات التالية:

  • مجموعة تطوير جافا (JDK).يمكنك تنزيله من موقع Java الإلكتروني. من خلال النقر على الرابط ، سترى في الأعلى منصة جافا (JDK)، انقر فوق تحميلبجانب النقش ، ثم حدد نظام التشغيل الخاص بك وابدأ التنزيل. بعد ذلك فقط اتبع تعليمات المثبت.
  • أندرويد سك. على الأكثر بطريقة بسيطةلتثبيت أحدث إصدار هو تنزيل Android Studio الذي يأتي معه SDK. للقيام بذلك ، انتقل إلى موقع Android Studio وانقر فوق قم بتنزيل Android Studio. يقوم مثبت Android Studio بتثبيت مكونات Android SDK الأساسية المطلوبة لتطوير Android.

الخطوة 5. تحضير المشروع للانطلاق

أولاً ، تحتاج إلى تغيير النظام الأساسي للتطوير إلى Android. للقيام بذلك ، في Unity ، افتح قائمة File وحدد Build Settings.

في النافذة التي تظهر ، حدد ذكري المظهرثم اضغط منصة التبديل.

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

نحتاج الآن إلى توفير اسم حزمة للتطبيق.

ملحوظة:اسم الحزمة هو معرف فريد للتطبيق ويتم كتابته بنمط DNS العكسي بالتنسيق com.CompanyName.ProductName. بمجرد نشر التطبيق على Google Play ، لم يعد من الممكن تغيير اسم الحزمة.

للقيام بذلك ، انتقل إلى القائمة يحررو اختار إعدادات المشروع - المشغل.

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

الآن يبقى فقط تحديد المسار إلى Android SDK و JDK. للقيام بذلك ، انتقل إلى القائمة وحدد تعديل التفضيلات.

في النافذة التي تظهر ، انتقل إلى أدوات خارجيةوفي الحقول SDKو JDKحدد المسارات المناسبة ، ثم أغلق النافذة.

الخطوة السادسة: إنشاء التطبيق وتشغيله

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

يبقى فقط للضغط يبني، وبعد ذلك ستبدأ الوحدة في بناء التطبيق. قبل ذلك ، قد يُطلب منك تحديد مجلد حيث سيتم حفظ ملفات التطبيق المجمعة ، بالإضافة إلى اسم ملف APK.

ملحوظة:في الوقت الحالي ، إذا كان لديك إصدار ألفا مثبتًا في Android SDK أدوات البناء(إصدار 28.0.0-rc1) ، عند بناء Gradle سوف يعطي خطأ. لإصلاح ذلك ، ما عليك سوى إزالة هذا الإصدار من Android SDK.

نتيجة لذلك ، سيظهر ملف APK المدمج في المجلد الذي حددته ، ويكون جاهزًا للتثبيت على المحاكي أو على جهاز حقيقي.

دعنا نرى ما بداخل ملف APK المدمج. للقيام بذلك ، نستخدم الأداة المساعدة محلل APK، المضمن في Android Studio ،

حجم ملف APK غير المضغوط هو 21.1 ميجابايت، في ملف مضغوط 20.9 ميجا بايت. كما ترى من الرسم البياني ، فإن معظم وحدة التخزين مشغولة بمكتبات الطرف الثالث المضافة بواسطة Unity. ثم في أصولتوجد جميع الموارد المستخدمة في المشهد المجمع. ملف class.dexيحتوي فقط 89 فصول و 479 طُرق.

علاوة على ذلك ، إذا نظرت إلى AndroidManifest.xml، التطبيق يتكون من نشاط واحد.

استنتاج

هذا كل شئ. في هذه المقالة ، تعلمنا كيفية تثبيت Unity وتكوينه ، كما قمنا ببناء أول تطبيق Android خاص بنا.

الوحدة هي المحرك الذي يعتمد عليه معظم العاب حديثةعلى منصات مختلفة. من خلال المحرك ، من الممكن حقًا إنشاء ألعاب موجهة للتشغيل على أجهزة الكمبيوتر (Windows ، Linux ، MacOS) ، الهواتف المحمولةوأجهزة الكمبيوتر اللوحية (Android و iOS) وحتى أجهزة الألعاببلاي ستيشن ، إكس بوكس ​​، نينتندو.

كيف تصنع الألعاب في Unity؟

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

قد يتم تضليل المبتدئين من خلال البساطة الظاهرة للعملية ، على الرغم من أن هذا ليس هو الحال. لإنشاء لعبة فريدة وشائعة ، عليك كتابة الكثير من المكونات من البداية. وبشكل أكثر تحديدًا ، في بيئة الوحدة ، يُسمى هذا البرنامج النصي. لغة البرمجة النصية الأصلية هي C # ، لكن JavaScript و Boo (نسخة مقصوصة من Python) تُستخدم جزئيًا أيضًا. إن إنشاء المكونات الخاصة بك ليس بالأمر السهل ، بل قد يقول المرء إنه إجراء معقد ، يرتبط ارتباطًا مباشرًا بالبرمجة الكلاسيكية. بدون مستوى كافٍ من المعرفة في البرمجة ، سيكون الأمر صعبًا.

المنصات المدعومة

تفضل العديد من المشاريع الكبيرة Unity بسبب القائمة الضخمة للمنصات المتوافقة مع المحرك. يمكن تشغيل التطبيق النهائي على أي نظام تشغيل كمبيوتر ومنصات متنقلة شهيرة و SmartTV. ماذا يمكننا أن نقول ، حتى ألعاب وتطبيقات المتصفح لمنصات معينة ( مثل نظام Tizen OS) في الغالب في الوحدة.

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

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

كيف وأين تطور لعبة على المحرك؟

يمكننا تنفيذ عملية طويلة لتطوير الألعاب في كل من نظامي التشغيل Windows و Mac OS X. توجد بالفعل إصدارات من المحرر لنظام التشغيل Linux ، ولكن حتى الآن لا يمكننا الاعتماد على تشغيلها المستقر. يقضي المطور معظم الوقت في إنشاء لعبة داخل محرر Unity. لا يزال لدينا الكثير من الوقت لكتابة كود البرنامج النصي ، ويمكننا إنشاؤه إما في MonoDevelop القياسي أو في أي محرر تابع لجهة خارجية. الآن يستخدمون بنشاط Visual Studio ، بالإضافة إلى Sublime Text ، ولكن فقط مع التكوين المناسب.

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

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

  1. نماذج الكائن
  2. المواصفات الفنية؛
  3. محتوى اللعبة ؛
  4. واجهه المستخدم.

دعنا نفكر في كل نقطة بمزيد من التفصيل.

نماذج الكائن

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

المواصفات الفنية

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

محتوى اللعبة

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

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

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

محرك اللعبة

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

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

UDK

عزم الدوران 2d / 3d

ما هو مصمم اللعبة؟

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

يتيح لك المُنشئ إنشاء ألعاب من أنواع مختلفة لأنظمة Windows و Android و iOS. عروض خيار كبيرالمواقع الجاهزة والأشياء والشخصيات وتصميم الصوت ، لذا فإن إنشاء أول لعبة Android لن يستغرق الكثير من الوقت. يمكن للمستخدمين المطلعين على لغات البرمجة JS و C ++ استخدام GML المضمّن. العيب الوحيد هو أن البرنامج لم يترجم إلى اللغة الروسية.

استنتاج

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

فيديو

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

كيفية كتابة لعبة Android بسرعة باستخدام Unity

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

لتوضيح مدى سهولة كتابة شيء مثل هذا ، سنكتب اليوم Flappy Bird باستخدام Unity في 10 دقائق فقط.

شخصية اللعبة

قم أولاً بإنشاء مشروع جديد وتأكد من تحديد الخيار ثنائي الأبعاد.

قم بتحميل كائن طائرك في المشهد. لا تنس أن تشغل خيالك!

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

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

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

الآن انقر فوق إضافة مكون. اختر Physics2D> Rigidbody2D - هذا هو مجموعة جاهزةتعليمات لتطبيق الجاذبية على شخصيتنا. انقر فوق القيود في هذه اللوحة ثم حدد دوران التجميد Z. سيمنع هذا الطائر من الدوران بالكاميرا.

بالطريقة نفسها ، أضف Polygon Collider الذي يخبر الوحدة بمكان حدود الشخصية. اضغط على Play وشاهد كيف يسقط الكائن والكاميرا إلى ما لا نهاية.

حتى الآن كل شيء يسير على ما يرام!

حان الوقت الآن لبدء تحليق الشخصية ، لأنه لن يكون صعبًا.

تحتاج أولاً إلى إنشاء برنامج نصي C #. أنشئ مجلدًا له (انقر بزر الماوس الأيمن في مكان ما في الأصول وأنشئ مجلد "البرامج النصية") ، وانقر بزر الماوس الأيمن وحدد إنشاء> C # Script.

دعنا نسميها "شخصية". انقر نقرًا مزدوجًا فوقه لفتحه في IDE الخاص بك ، سواء كان MonoDevelop أو Visual Studio. ثم أضف الكود التالي:

الطابع العام للفئة العامة: MonoBehaviour (public Rigidbody2D rb؛ public float moveSpeed؛ public float flapHeight؛ // This is for initialization void Start () (rb = GetComponent () ؛) // يتم استدعاء التحديث مرة واحدة لكل إطار باطل Update () (rb .velocity = Vector2 جديد (moveSpeed ​​، rb.velocity.y) ؛ إذا (Input.GetMouseButtonDown (0)) (rb.velocity = Vector2 جديد (rb.velocity.x ، flapHeight) ؛) إذا (transform.position.y> 18 || transform.position.y< -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

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

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

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

يتم أيضًا إعلان طريقة Death () للجمهور ، مما يعني أنه يمكن للأشياء والنصوص الأخرى تسميتها. تقوم هذه الطريقة ببساطة بإرجاع موضع الحرف إلى البداية. سيتم استخدامه أيضًا في كل مرة تطير فيها الشخصية عالية أو منخفضة جدًا. ستفهم قريبًا سبب إعلانها للجمهور. السطر rb.velocity = Vector3.zero ؛ نحتاج إلى إزالة الزخم - لا نريد أن تسقط الشخصية بشكل أسرع وأسرع بعد كل وفاة ، أليس كذلك؟

يمكنك الآن الخروج من IDE وإضافة البرنامج النصي كمكون إلى الحرف. للقيام بذلك ، حدد طائرتنا وانقر فوق إضافة مكون> نصوص> شخصية. الآن يمكننا تحديد moveSpeed ​​و flapHeight في المفتش (هذا هو الغرض من المتغيرات العامة). تعيين قيم متغيرة 3 و 5 على التوالي.

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

عوائق

الآن دعونا نضيف عقبات: الأنابيب. يجد شخص ما عيش الغراب في الأنابيب ، فيجد شخص ما موته.

اسحب كائن الأنبوب إلى المشهد حيث تريد أن يكون العائق الأول وقم بتسميته pipe_up.
لنقم الآن بإنشاء برنامج نصي جديد يسمى الأنابيب:

أنبوب فئة عامة: MonoBehaviour (شخصية شخصية خاصة ؛ // مطلوب للتهيئة باطل ابدأ () (حرف = FindObjectOfType () ؛) // يُطلق على التحديث مرة واحدة لكل إطار تحديث باطل () (if (character.transform.position.x - convert.position.x>

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

يتم استدعاء طريقة OnCollisionEnter2D () في كل مرة يتفاعل فيها الأنبوب مع شخصية ما. بعد ذلك ، يتم استدعاء طريقة Death () التي تم إنشاؤها مسبقًا ، وإعادة اللاعب إلى نقطة البداية.

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

الأنابيب المقلوبة

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

قم بتسمية هذا الكائن باسم pipe_down. في المفتش ، ضمن Sprite Renderer ، حدد الخيار Flip Y لقلب الأنبوب رأسًا على عقب. أضف نفس RigidBody2D.

الآن دعنا نكتب نص C # جديدًا يسمى PipeD. سيكون لها رمز مشابه:

فئة عامة PipeD: MonoBehaviour (شخصية شخصية خاصة ؛ // هذا مطلوب لتهيئة الفراغ Start () (character = FindObjectOfType () ؛) // يتم استدعاء التحديث مرة واحدة لكل إطار باطل Update () (if (character.transform.position. x - transform.position.x> 30) ()) باطل OnCollisionEnter2D (Collision2D other) (if (other.gameObject.tag == "Player") (character.Death () ؛)))

المباني الجاهزة

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

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

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

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

للقيام بذلك ، قم بإنشاء مجلد "المباني الجاهزة" جديد. ثم اسحب pipe_up و pipe_down من نافذة التسلسل الهرمي إلى المجلد.

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

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

أولاً ، أضف هذا الرمز إلى التعبير الشرطي في طريقة Update () من البرنامج النصي Pip الذي تركناه فارغًا:

تحديث باطل () (if (character.transform.position.x - transform.position.x> 30) (float xRan = Random.Range (0، 10)؛ float yRan = Random.Range (-5، 5)؛ Instiate (gameObject ، Vector2 الجديد (character.transform.position.x + 15 + xRan، -10 + yRan) ، transform.rotation) ؛ تدمير (gameObject) ؛))

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

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

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

قم بإنشاء gameObject العامة باسم pipeDown. ثم قم بتحديث الكود كما يلي:

If (character.transform.position.x - transform.position.x> 30) (float xRan = Random.Range (0، 10)؛ float yRan = Random.Range (-5، 5)؛ float gapRan = Random.Range (0، 3)؛ إنشاء مثيل (gameObject، Vector2 جديد (character.transform.position.x + 15 + xRan، -11 + yRan)، transform.rotation) ؛ إنشاء مثيل (pipeDown ، Vector2 الجديد (character.transform.position.x + 15 + xRan، 12 + gapRan + yRan)، transform.rotation) ؛ تدمير (gameObject) ؛)

ارجع إلى Unity واسحب pipe_down prefab من مجلد المباني الجاهزة (هذا مهم!) إلى المكان الذي تقول فيه "Pipe Down" (لاحظ كيف يتم استبدال صندوق الجمل الخاص بنا بمسافة) على أنبوب sprite الأنابيب لأعلى. إذا كنت تتذكر ، فقد حددنا Pipe Down ككائن لعبة عامة ، مما يمنحنا القدرة على تحديد ماهية هذا الكائن من أي مكان - في هذه الحالة من خلال المفتش. باختيار مبنى جاهز لهذا الكائن ، نتأكد من أنه عندما يتم إنشاء مثيل للأنبوب ، فإنه سيتضمن جميع السمات والبرنامج النصي الذي أضفناه سابقًا. نحن لا نقوم فقط بإنشاء كائن ، ولكننا نعيد إنشاء كائن باستخدام مصادم يمكنه قتل الشخصية.

كل ما سنضيفه في نفس المكان في البرنامج النصي لـ PipeD هو مجرد Destroy (gameObject) ، بحيث يتم تدمير الأنبوب ذاتيًا عندما ينحرف عن الجانب الأيسر من الشاشة.

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

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

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

رحلة لا نهاية لها

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

نحتاج إلى إضافة هذه المتغيرات:

عامة GameObject pipe_up ؛ عامة GameObject pipe_down ؛

ثم سنكتب طريقة مثل هذه:

المستوى BuildLevel العام الفارغ () (مثيل (pipe_down، Vector3 جديد (14، 12)، تحويل.دوران) ؛ مثيل (pipe_up، new Vector3 (14، -11)، transform.rotation)؛ مثيل (pipe_down، Vector3 الجديد (26، 14) ، تحويل. 38، -14)، transform.rotation)؛ مثيل (pipe_down، Vector3 جديد (50، 16)، transform.rotation) ؛ مثيل (pipe_up، Vector3 جديد (50، -8)، transform.rotation) ؛ مثيل (pipe_down ، Vector3 جديد (61، 11)، transform.rotation) ؛ مثيل (pipe_up، Vector3 جديد (61، -13)، transform.rotation) ؛)

سوف نسميها مرة واحدة في طريقة التحديث () ومرة ​​واحدة في طريقة الموت ().

بعد بدء اللعبة ، يتم استدعاء Update () ، ويتم وضع الأنابيب وفقًا للتكوين المحدد. نتيجة لهذا ، ستكون العقبات الأولى دائمًا في نفس المكان. بعد وفاة اللاعب ، ستعود الأنابيب إلى نفس الأماكن.

ارجع إلى المشهد في Unity واحذف الأنبوبين الموجودين الآن. ستبدو "لعبتك" مجرد شاشة فارغة مع طائر. اضغط على Play وستظهر الأنابيب ، بعد المرات القليلة الأولى ، سيتم تحديد موضعها بشكل عشوائي.

أخيراً

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

هل تريد كتابة تطبيقات Android ولكن لا تعرف من أين تبدأ؟ ثم تحقق من البرنامج التعليمي الرائع لتعلم تطوير Android.



 
مقالات علىعنوان:
كل ما تحتاج لمعرفته حول بطاقات الذاكرة SD حتى لا تخطئ عند شراء Connect sd
(4 تقييمات) إذا لم يكن لديك مساحة تخزين داخلية كافية على جهازك ، فيمكنك استخدام بطاقة SD كوحدة تخزين داخلية لهاتف Android. تسمح هذه الميزة ، التي تسمى التخزين القابل للتطبيق ، لنظام التشغيل Android بتنسيق الوسائط الخارجية
كيفية قلب العجلات في GTA Online والمزيد في الأسئلة الشائعة حول GTA Online
لماذا لا تتصل gta عبر الإنترنت؟ الأمر بسيط ، الخادم متوقف مؤقتًا / غير نشط أو لا يعمل. انتقل إلى آخر كيفية تعطيل الألعاب عبر الإنترنت في المتصفح. كيف يمكن تعطيل تشغيل تطبيق Online Update Clinet في مدير الاتصال؟ ... على skkoko أعرف عندما تمانع
آس البستوني في تركيبة مع بطاقات أخرى
التفسيرات الأكثر شيوعًا للبطاقة هي: الوعد بمعارف لطيفة ، وفرحة غير متوقعة ، ومشاعر وأحاسيس غير مجربة سابقًا ، وتلقي هدية ، وزيارة زوجين. آس القلوب ، معنى البطاقة عند وصف شخص معين لك
كيفية بناء برجك الانتقال بشكل صحيح قم بعمل خريطة حسب تاريخ الميلاد مع فك التشفير
يتحدث الرسم البياني الولادة عن الصفات والقدرات الفطرية لمالكها ، ويتحدث المخطط المحلي عن الظروف المحلية التي بدأها مكان العمل. إنهما متساويان في الأهمية ، لأن حياة الكثير من الناس تزول عن مكان ولادتهم. اتبع الخريطة المحلية