Menu
CoddyTech
flag Ar iconالعربيةdown icon

بناء البرج

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

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

اكتب اللعبة كاملةً في سكربت واحد، Crane، على الرافعة.

challenge icon

التحدي

صعب

اكتب النص البرمجي Crane على Crane. يعيّن Inspector كلاً من blockPrefab (الـ prefab الخاص بـ Block)، وtop (القاعدة، أي أعلى نقطة في البرج حتى الآن)، وcraneSpeed (3)، وcraneEdge (4)، وfallSpeed (7).

  • ينزلق الرافعة على طول المحور x بسرعة craneSpeed وحدة في الثانية. بعد تجاوز craneEdge، يعود إلى اليسار، وبعد تجاوز -craneEdge، يعود إلى اليمين.
  • يُسقط الضغط على Space أو النقر بزر الفأرة الأيسر Block عند إحداثي x الخاص بالرافعة، على بُعد وحدة واحدة أسفل الرافعة. أثناء سقوط كتلة، لا تفعل الضغوطات الإضافية شيئًا.
  • تتحرك الكتلة الساقطة إلى الأسفل بسرعة fallSpeed وحدة في الثانية.
  • عندما يصل إحداثي y الخاص بها إلى إحداثي y الخاص بـ top زائد 1، ويكون إحداثي x الخاص بها على بُعد أقل من 1 من إحداثي x الخاص بـ top، فإنها تهبط: اضبط إحداثي y الخاص بها على إحداثي y الخاص بـ top زائد 1 بالضبط، واجعلها top الجديدة، وسجّل ارتفاع البرج بالشكل Stack: 1 وStack: 2 وهكذا.
  • تواصل الكتلة التي لا تهبط السقوط. أسفل y = -3، أتلفها وسجّل Missed!.

اضغط على Play وابنِ برجًا، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    void Update()
    {
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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