Menu
CoddyTech

Golf de canicas

Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 62 de 63.

Golf con una canica en un pequeño campo verde. La canica empieza en el tee: apúntala con las flechas, mantén pulsada la barra espaciadora para acumular potencia y suéltala para golpear. Rueda, rebota en los bordes acolchados y en el bloque del centro, y va perdiendo velocidad; cuando va lo bastante despacio, se detiene por completo. Solo entonces puedes volver a golpear. Una canica que rueda lentamente hasta el hoyo cae dentro; una que llega demasiado rápido pasa de largo. Cuantos menos golpes, mejor.

Escribe dos scripts: Golf en la canica y Hole en el hoyo.

challenge icon

Desafío

Difícil

El Inspector asigna a Golf pointer (la pequeña bola amarilla), aimSpeed (90), chargeRate (4), maxPower (6) y stopSpeed (0.3). La masa de la canica es 0.5.

  • La puntería es un ángulo alrededor del eje y, 0 al inicio (directamente hacia delante, +z). La flecha derecha la gira a la derecha y la flecha izquierda a la izquierda, a aimSpeed grados por segundo. En cada fotograma, coloca el puntero a 1 unidad de la canica en la dirección de la puntería.
  • La canica está en reposo mientras su velocidad sea inferior a stopSpeed. En cada paso de física, una canica en reposo se detiene por completo: velocidad y velocidad angular cero.
  • Solo mientras la canica está en reposo: mantener pulsada la barra espaciadora acumula potencia a chargeRate por segundo, sin superar nunca maxPower, y soltar la barra espaciadora golpea la canica con un Impulse de esa potencia en la dirección de la puntería. La potencia vuelve después a 0, y un int strokes público aumenta en 1 y se registra como Stroke 1.

El Inspector asigna a Hole sinkSpeed (3).

  • Cuando la canica (el objeto con el script Golf) entra en el hoyo más despacio que sinkSpeed, registra sus golpes como In the cup in 2 strokes! y desactiva la canica. Una canica más rápida pasa rodando.

Pulsa Play y mete la canica en el hoyo con el menor número de golpes que puedas; después, pulsa Check.

Pruébalo tú mismo

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

    // apunta con las flechas, carga con Space, dispara al soltarla y detente cuando vayas despacio
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Física y jugabilidad