Menu
CoddyTech

الملتقط

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 50 من 85.

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

مهمة إبقاء عدد ضمن حدود هي وظيفة Mathf.Clamp(value, min, max). تُرجع min عندما تكون القيمة أقل من min، وmax عندما تكون أعلى من max، والقيمة نفسها في غير ذلك. تتبع هذه الكاميرا اللاعب صعودًا إلى برج، لكن ارتفاعها يبقى بين 2 و12:

[SerializeField] private Transform player;

void Update()
{
    float y = Mathf.Clamp(player.position.y, 2f, 12f);
    transform.position = new Vector3(transform.position.x, y, transform.position.z);
}

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

challenge icon

التحدي

متوسط

أضف الحركة إلى الماسك، أي الشريط الأزرق.

  1. في Update()، انسخ transform.position.x إلى float x، ثم أضف speed * Time.deltaTime أو اطرحه بحسب السهم الذي تضغط عليه باستمرار.
  2. أبقِ الماسك بعرض وحدتين على الأرض (من x تساوي -5 إلى 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. اكتب x مجددًا في transform.position، مع الحفاظ على y وz.

اضغط على «العب» واضغط باستمرار على الأسهم: سيتوقف عند الحواف. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // مفاتيح الأسهم: حرّك الملتقط على المحور x بمعدل speed وحدة في الثانية.
        // أبقِ الملتقط بأكمله على الأرض (يمتد x من -5 إلى 5، وعرض الملتقط 2).
    }
}

جميع دروس أساسيات البرمجة النصية في Unity

تدرّب بنفسك: Playground لـ Unity