Menu
CoddyTech

Golfe de Bolinha de Gude

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

Golfe com uma bolinha de gude em um pequeno campo verde. A bolinha começa no tee: mire com as setas, segure Espaço para acumular potência e solte para dar a tacada. Ela rola, bate nas bordas e no bloco no meio e desacelera; quando fica lenta o suficiente, para completamente. Só então você pode dar outra tacada. Uma bolinha que rola até o buraco devagar cai nele; uma que chega rápido demais passa direto por cima. Quanto menos tacadas, melhor.

Escreva dois scripts: Golf na bolinha de gude e Hole no buraco.

challenge icon

Desafio

Difícil

O Inspector fornece ao Golf pointer (a pequena bola amarela), aimSpeed (90), chargeRate (4), maxPower (6) e stopSpeed (0.3). A massa da bolinha de gude é 0.5.

  • A mira é um ângulo em torno de y, 0 no início (direto à frente, +z). A seta para a direita vira a mira para a direita, e a seta para a esquerda, para a esquerda, a aimSpeed graus por segundo. A cada quadro, coloque o ponteiro a 1 unidade da bolinha de gude, na direção da mira.
  • A bolinha de gude está em repouso enquanto sua velocidade estiver abaixo de stopSpeed. Em cada etapa da física, uma bolinha de gude em repouso é parada completamente: velocidade e velocidade angular iguais a zero.
  • Somente enquanto a bolinha de gude estiver em repouso: manter Espaço pressionado acumula potência a chargeRate por segundo, nunca acima de maxPower, e soltar Espaço chuta a bolinha de gude com um Impulse dessa potência na direção da mira. A potência então volta a 0, e um int strokes público aumenta em 1 e é registrado como Stroke 1.

O Inspector fornece ao Hole sinkSpeed (3).

  • Quando a bolinha de gude (o objeto com o script Golf) entrar no buraco com velocidade menor que sinkSpeed, registre o número de tacadas como In the cup in 2 strokes! e desative a bolinha de gude. Uma bolinha de gude mais rápida passa rolando.

Pressione Play e encaçape a bolinha de gude com o menor número de tacadas possível, depois Check.

Experimente você mesmo

using UnityEngine;

public class Golf : MonoBehaviour
{
    public int strokes = 0;
    [SerializeField] private Transform pointer;
    [SerializeField] private float aimSpeed = 90f;
    [SerializeField] private float chargeRate = 4f;
    [SerializeField] private float maxPower = 6f;
    [SerializeField] private float stopSpeed = 0.3f;
    private Rigidbody rb;

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

    // mire com as setas, carregue com Space, atire ao soltar, pare quando estiver lento
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

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