Menu
CoddyTech

Ganhar ou Perder

Parte da seção Física e jogabilidade do Journey de Unity da Coddy. Lição 32 de 63.

challenge icon

Desafio

Médio

Última etapa: uma forma de vencer. Mantenha tudo das etapas anteriores e adicione a Ball:

  • public int target = 10; (o Inspector define 8).
  • O jogo está em andamento enquanto timeLeft é maior que 0 e score é menor que target. Escreva isso como um método, bool IsPlaying(), e use-o: o relógio faz a contagem regressiva, as setas empurram e as moedas aumentam a pontuação somente enquanto o jogo está em andamento.
  • Quando uma moeda elevar score até target ou mais, registre You win! após a linha da pontuação.
  • Quando o tempo acabar primeiro, registre You lose! após a linha Time's up!.

Pressione Play e alcance 8 pontos antes que o tempo acabe; depois, Check.

Experimente você mesmo

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

Todas as lições de Física e jogabilidade