Menu
CoddyTech

Kazan ya da Kaybet

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 32 / 63.

challenge icon

Görev

Orta

Son adım: kazanmanın bir yolu. Önceki adımlardaki her şeyi koru ve Ball'a şunları ekle:

  • public int target = 10; (Inspector 8 olarak ayarlar).
  • Oyun, timeLeft 0'dan büyük ve score target'tan küçük olduğu sürece devam eder. Bunu bool IsPlaying() adlı bir yöntem olarak yaz ve kullan: saat geri sayar, oklar topu iter ve paralar puanı yalnızca oyun devam ederken artırır.
  • Bir para, score'u target'a veya daha fazlasına çıkardığında, puan satırından sonra You win! mesajını kaydet.
  • Süre önce dolarsa, Time's up! satırından sonra You lose! mesajını kaydet.

Play'e bas ve süre dolmadan önce 8 puana ulaş, ardından Check'e bas.

Kendin dene

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);
    }
}

Fizik ve Oynanış bölümündeki tüm dersler