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

نجمة تلو الأخرى

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

challenge icon

التحدي

متوسط

أرسل نجمة جديدة بعد كل التقاط وكل إخفاق. تُفقد النجمة عندما تنخفض قيمة y الخاصة بها إلى أقل من 0. سواء تم التقاطها أم فقدانها، تبدأ النجمة من جديد عند y = 6 وz = 0، وبقيمة x عشوائية بين -4 و4. تُرجع Random.Range(min, max) قيمة عائمة عشوائية بين min وmax، لذا تختار Random.Range(-4f, 4f) قيمة x هذه.

تُعيد الحالتان تشغيل النجمة بالطريقة نفسها، لذا اكتب ذلك مرة واحدة في دالة، void ResetStar()، واستدعها من كلتيهما. لا تُحتسب نقاط عند الإخفاق. احتفظ بكل ما أُنجز في الخطوات السابقة.

جرّب بنفسك

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private Transform star;
    [SerializeField] private float fallSpeed = 3f;
    private int score;

    void Update()
    {
        float x = transform.position.x;
        if (Input.GetKey(KeyCode.RightArrow))
        {
            x += speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            x -= speed * Time.deltaTime;
        }
        x = Mathf.Clamp(x, -4f, 4f);
        transform.position = new Vector3(x, transform.position.y, transform.position.z);

        star.position += Vector3.down * fallSpeed * Time.deltaTime;

        if (Vector3.Distance(transform.position, star.position) < 1f)
        {
            score++;
            Debug.Log("Caught! Score: " + score);
            star.position = new Vector3(star.position.x, 6f, star.position.z);
        }
    }
}

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