Menu
CoddyTech

لقد فزت

جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 33 من 71.

challenge icon

التحدي

متوسط

اجعل اللاعب يفوز عند الوصول إلى target نقطة.

  1. في Ball.cs، أضف public int target = 10; وbool IsPlaying()، بحيث تُعيد timeLeft > 0f && score < target.
  2. استخدم IsPlaying() بدلًا من timeLeft > 0f في Update() وFixedUpdate()، وابدأ AddScore باستخدام if (!IsPlaying()) return;.
  3. بعد سطر النتيجة، عندما يكون score >= target، سجّل You win!.

اضغط «العب» واجمع 8 نقاط. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

public class Ball : MonoBehaviour
{
    public float force = 10f;
    public int score;
    public float timeLimit = 60f;
    public float timeLeft;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        timeLeft = timeLimit;
    }

    void Update()
    {
        if (timeLeft > 0f)
        {
            timeLeft -= Time.deltaTime;
            if (timeLeft <= 0f)
            {
                timeLeft = 0f;
                Debug.Log("Time's up! Score: " + score);
            }
        }
    }

    void FixedUpdate()
    {
        if (timeLeft > 0f)
        {
            float x = Input.GetAxis("Horizontal");
            float z = Input.GetAxis("Vertical");
            rb.AddForce(new Vector3(x, 0f, z) * force);
        }
    }

    public void AddScore(int points)
    {
        score += points;
        Debug.Log("Score: " + score);
    }
}

جميع دروس الفيزياء وأسلوب اللعب

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