السلام عليكم و رحمة الله تعالى و بركاته
مرحبا بكم في درس جديد سنتطرق من خلاله إلى كيفية برمجة لعبة Car Driving للأندرويد ثنائية الأبعاد و ذلك باستخدام
Unity.
الفكرة:
في البداية سيضغط اللاعب على زر Play ثم سيبدأ اللعب و ستكون لديه سيارة يتحكم فيها و ذلك عن طريق تحريك هاتفه لليمين أو اليسار و بينما هو يقود تلك السيارة سيجد أمامه عدة سيارات قادمة في الاتجاه المعاكس و لديه أربع فرص لتفاديها حيث أنه لا يتوجب عليه الإصطدام بأكثر من أربع سيارات و إن حدث العكس فستنتهي اللعبة.
أيضا سنضع زر في الأعلى سيمكن اللاعب من إيقاف اللعبة و إعادة تشغيلها و سنضع نصا يبين له عدد نقطه التي حصل عليها و التي تمثل عدد السيارات التي لم يصدمها بالإضافات إلى أربع سيارات صغيرة سنضعها في الأعلى ستبين له عدد الفرص المتبقيه له حيث ستختفي تدريجيا بمجرد اصطدامه مع كل سيارة.
و في آخراللعبة سيحصل اللاعب على نقطته الحالية و أعلى نقطة حصل عليها منذ بدأ بلعب اللعبة.
الإعلانات:
بالنسبة للإعلانات سنقتصر على الشبكة الإعلانية الخاصة بـAdmob فقط و ذلك لأن نفس الأمر ينطبق على باقي الشبكات و كلها تمر بنفس المراحل.
الوسائل التي سنحتاجها لبدء العمل فهي كالتالي:
محرك الألعاب المستخدم Unity الإصدار الذي سنشتغل عليه هو 5.4.0 يمكن تحميله من الموقع الرسمي عبر هذا الرابط.
المشاهد:
المشهد الاول: عبارة عن واجهة تحتوي على 4أزرار : زر من اجل بدأ اللعب و زر لمشاركة اللعبة و زر آخر لتقييمها ثم زر أخير من أجل إغلاق اللعبة.
المشهد الثاني: هو مشهد اللعبة و الذي سيمكن المستخدم من تحريك لعبته و محاولة تفادي باقي السيارات.
المشهد الثالث: هو مشهد نهاية اللعبة الذي سيعطي لللاعب النقطة التي حصل عليها ثم سيظهر له زرا من أجل إعادة اللعبة.
الأكواد التي سنحتاجها فهي كالتالي:
كود فتح مشهد جديد:
كود مشاركة نص ما:
كود فتح تطبيق معين في جوجل بلاي من أجل تقييمه:
كود إغلاق التطبيق:
كود تحريك عنصر معين إلى اليمين أو اليسار عند الضغط على أسهم لوحة المفاتيح:
كود تحريك عنصر معين إلى اليمين أو اليسار عند تحريك الهاتف:
كود القيام بأمر ما عند اصطدام عنصر معين مع عنصر محدد بـ Tag:
كود تثبيت قيمة معينة بين قيمتين:
كود تكرار عنصر معين مع تحديد موضعه و درجة دورانه:
كود الحصول على رقم عشوائي بين قيمتين محددتين:
كود إزاحة عنصر إلى مكان معين:
بالنسبة لأكواد الإعلانات سنقوم بأخدها من موقع Google الرسمي عبر هذا الرابط.
و بهذا نكون قد انتهينا، و السلام عليكم و رحمة الله تعالى و بركاته.
الفكرة:
في البداية سيضغط اللاعب على زر Play ثم سيبدأ اللعب و ستكون لديه سيارة يتحكم فيها و ذلك عن طريق تحريك هاتفه لليمين أو اليسار و بينما هو يقود تلك السيارة سيجد أمامه عدة سيارات قادمة في الاتجاه المعاكس و لديه أربع فرص لتفاديها حيث أنه لا يتوجب عليه الإصطدام بأكثر من أربع سيارات و إن حدث العكس فستنتهي اللعبة.
أيضا سنضع زر في الأعلى سيمكن اللاعب من إيقاف اللعبة و إعادة تشغيلها و سنضع نصا يبين له عدد نقطه التي حصل عليها و التي تمثل عدد السيارات التي لم يصدمها بالإضافات إلى أربع سيارات صغيرة سنضعها في الأعلى ستبين له عدد الفرص المتبقيه له حيث ستختفي تدريجيا بمجرد اصطدامه مع كل سيارة.
و في آخراللعبة سيحصل اللاعب على نقطته الحالية و أعلى نقطة حصل عليها منذ بدأ بلعب اللعبة.
الإعلانات:
بالنسبة للإعلانات سنقتصر على الشبكة الإعلانية الخاصة بـAdmob فقط و ذلك لأن نفس الأمر ينطبق على باقي الشبكات و كلها تمر بنفس المراحل.
الوسائل التي سنحتاجها لبدء العمل فهي كالتالي:
محرك الألعاب المستخدم Unity الإصدار الذي سنشتغل عليه هو 5.4.0 يمكن تحميله من الموقع الرسمي عبر هذا الرابط.
المشاهد:
المشهد الاول: عبارة عن واجهة تحتوي على 4أزرار : زر من اجل بدأ اللعب و زر لمشاركة اللعبة و زر آخر لتقييمها ثم زر أخير من أجل إغلاق اللعبة.
المشهد الثاني: هو مشهد اللعبة و الذي سيمكن المستخدم من تحريك لعبته و محاولة تفادي باقي السيارات.
المشهد الثالث: هو مشهد نهاية اللعبة الذي سيعطي لللاعب النقطة التي حصل عليها ثم سيظهر له زرا من أجل إعادة اللعبة.
الأكواد التي سنحتاجها فهي كالتالي:
كود فتح مشهد جديد:
SceneManager.LoadScene("SceneName"); |
كود مشاركة نص ما:
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject> ("setAction", intentClass.GetStatic<string>("ACTION_SEND")); intentObject.Call<AndroidJavaObject> ("setType", "text/plain"); intentObject.Call<AndroidJavaObject> ("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), "subject"); intentObject.Call<AndroidJavaObject> ("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "body"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject> ("createChooser", intentObject, "share via"); currentActivity.Call("startActivity", jChooser); |
كود فتح تطبيق معين في جوجل بلاي من أجل تقييمه:
Application.OpenURL("market://details?id=com.car.driving"); |
كود إغلاق التطبيق:
Application.Quit();
|
كود تحريك عنصر معين إلى اليمين أو اليسار عند الضغط على أسهم لوحة المفاتيح:
Vector2 position = transform.position; position.x += Input.GetAxis("Horizontal") * Time.deltaTime * speed; transform.position = position; |
كود تحريك عنصر معين إلى اليمين أو اليسار عند تحريك الهاتف:
Vector2 position = transform.position; position.x += Input.acceleration.x * Time.deltaTime * speed; transform.position = position; |
كود القيام بأمر ما عند اصطدام عنصر معين مع عنصر محدد بـ Tag:
void OnCollisionEnter2D (Collision2D coll) { if (coll.gameObject.tag == "Enemy"){ //Do Something }} |
كود تثبيت قيمة معينة بين قيمتين:
position.x = Mathf.Clamp(position.x, -limit , limit); |
كود تكرار عنصر معين مع تحديد موضعه و درجة دورانه:
Instantiate(GameObjectName, transform.position, transform.rotation); |
كود الحصول على رقم عشوائي بين قيمتين محددتين:
Random.Range(firstNumber, lastNumber); |
كود إزاحة عنصر إلى مكان معين:
transform.Translate(new Vector2(X, Y)); |
بالنسبة لأكواد الإعلانات سنقوم بأخدها من موقع Google الرسمي عبر هذا الرابط.
و بهذا نكون قد انتهينا، و السلام عليكم و رحمة الله تعالى و بركاته.