Menu
CoddyTech

الأرض أو الإخفاق

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

يُكمل هذا التحدي لعبة البرج والقسم الأول من الدورة: رافعة، وكتلة ساقطة، واختبار هبوط باستخدام Mathf.Abs.

challenge icon

التحدي

صعب

اجعل كل كتلة تهبط على الرصة أو تسقط بعيدًا عنها.

  1. عندما تصل الكتلة الساقطة إلى top's y + 1 وتصبح على بُعد أقل من 1 من top's x، اضبط y الخاص بها على هذه القيمة بالضبط، واجعلها top، وأفرغ falling وسجّل "Stack: " + count.
  2. وإلا، إذا هبطت إلى ما دون y = -3، فدمّرها، وأفرغ falling وسجّل Missed!.

اضغط «العب» ورتّب الكتل فوق بعضها: كل هبوط يسجّل الارتفاع. ثم اضغط «تحقق».

جرّب بنفسك

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;

    private float direction = 1f;
    private Transform falling;
    private int stack;

    void Update()
    {
        transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
        if (transform.position.x > craneEdge) direction = -1f;
        if (transform.position.x < -craneEdge) direction = 1f;

        bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
        if (drop && falling == null)
        {
            Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
            falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
        }

        if (falling != null)
        {
            falling.position += Vector3.down * fallSpeed * Time.deltaTime;
            // الهبوط على الكومة: الدرس التالي.
        }
    }
}
quiz iconاختبر نفسك

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

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

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