Menu
CoddyTech

Golf de billes

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 62 sur 63.

Du golf avec une bille sur un petit green. La bille commence sur le tee : tu la vises avec les flèches, tu maintiens la barre d’espace pour accumuler de la puissance et tu la relâches pour tirer. Elle roule, rebondit sur les bandes et le bloc au milieu, puis ralentit et, une fois qu’elle est assez lente, s’arrête net. Ce n’est qu’alors que tu peux tirer à nouveau. Une bille qui roule lentement dans le trou y tombe ; une bille qui arrive trop vite passe tout droit par-dessus. Moins tu fais de coups, mieux c’est.

Écris deux scripts : Golf sur la bille et Hole sur le trou.

challenge icon

Défi

Difficile

L’inspecteur fournit à Golf pointer (la petite balle jaune), aimSpeed (90), chargeRate (4), maxPower (6) et stopSpeed (0.3). La masse de la bille est de 0.5.

  • La visée est un angle autour de y, à 0 au départ (tout droit, +z). La flèche droite la fait tourner vers la droite et la flèche gauche vers la gauche, à aimSpeed degrés par seconde. À chaque image, place le pointeur à 1 unité de la bille, dans la direction visée.
  • La bille est au repos tant que sa vitesse est inférieure à stopSpeed. À chaque étape physique, une bille au repos est complètement immobilisée : sa vitesse et sa vitesse angulaire sont mises à zéro.
  • Uniquement lorsque la bille est au repos : maintenir la barre d’espace augmente la puissance à raison de chargeRate par seconde, sans jamais dépasser maxPower, et relâcher la barre d’espace propulse la bille avec une impulsion de cette puissance dans la direction visée. La puissance revient alors à 0, et un int strokes public est incrémenté de 1 et consigné sous la forme Stroke 1.

L’inspecteur fournit à Hole sinkSpeed (3).

  • Lorsque la bille (l’objet avec le script Golf) entre dans le trou à une vitesse inférieure à sinkSpeed, consigne son nombre de coups sous la forme In the cup in 2 strokes!, puis désactive la bille. Une bille plus rapide roule au-delà.

Appuie sur Play et fais entrer la bille dans le trou en aussi peu de coups que possible, puis clique sur Check.

Essayez vous-même

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

    // visez avec les flèches, chargez avec Space, tirez en relâchant la touche, arrêtez-vous quand la balle ralentit
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Physique et gameplay