Menu
CoddyTech

Menang atau Kalah

Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 32 dari 63.

challenge icon

Tantangan

Sedang

Langkah terakhir: cara untuk menang. Pertahankan semua yang sudah dibuat pada langkah sebelumnya, lalu tambahkan ke Ball:

  • public int target = 10; (atur nilainya menjadi 8 di Inspector).
  • Permainan berlangsung selama timeLeft lebih dari 0 dan score kurang dari target. Tulis kondisi itu sebagai method, bool IsPlaying(), lalu gunakan method tersebut: waktu terus berkurang, tombol panah menggerakkan bola, dan koin menambah skor hanya selama permainan berlangsung.
  • Saat koin membuat score mencapai atau melebihi target, catat You win! setelah baris skor.
  • Jika waktu habis lebih dulu, catat You lose! setelah baris Time's up!.

Tekan Mainkan dan raih 8 poin sebelum waktu habis, lalu tekan Periksa.

Coba sendiri

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

Semua pelajaran di Fisika dan Gameplay