طريقة برمجة لعبة Car Driving باستخدام Unity

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

   الفكرة:

 في البداية سيضغط اللاعب على زر 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 الرسمي عبر هذا الرابط



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

ليست هناك تعليقات:

إرسال تعليق