Menu
CoddyTech

Golf Kelereng

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

Bermain golf dengan sebuah kelereng di lapangan hijau kecil. Kelereng mulai dari tee: kamu mengarahkannya dengan tombol panah, tahan Space untuk menambah tenaga, lalu lepaskan untuk memukul. Kelereng menggelinding, memantul dari bantalan dan balok di tengah, lalu melambat. Setelah cukup lambat, kelereng berhenti total. Hanya setelah itu kamu bisa memukul lagi. Kelereng yang menggelinding ke lubang dengan pelan akan masuk. Kelereng yang tiba terlalu cepat akan menggelinding melewatinya. Semakin sedikit pukulan, semakin baik.

Tulis dua skrip: Golf pada kelereng dan Hole pada lubang.

challenge icon

Tantangan

Sulit

Inspector memberikan Golf pointer (bola kecil berwarna kuning), aimSpeed (90), chargeRate (4), maxPower (6), dan stopSpeed (0.3). Massa kelereng adalah 0.5.

  • Arah bidikan adalah sudut pada sumbu y, dengan nilai awal 0 (lurus ke depan, +z). Panah kanan memutarnya ke kanan dan panah kiri ke kiri, dengan kecepatan aimSpeed derajat per detik. Setiap frame, tempatkan pointer 1 unit dari kelereng ke arah bidikan.
  • Kelereng dalam keadaan diam saat kecepatannya di bawah stopSpeed. Pada setiap langkah fisika, kelereng yang diam dihentikan sepenuhnya: kecepatan dan kecepatan sudutnya menjadi nol.
  • Hanya saat kelereng dalam keadaan diam: menahan Space akan menambah kekuatan sebesar chargeRate per detik, tidak pernah melebihi maxPower, dan melepas Space akan menendang kelereng dengan Impulse sebesar kekuatan tersebut ke arah bidikan. Kekuatan kemudian kembali ke 0, lalu int strokes publik bertambah 1 dan dicatat sebagai Stroke 1.

Inspector memberikan Hole sinkSpeed (3).

  • Saat kelereng (object dengan skrip Golf) memasuki lubang dengan kecepatan di bawah sinkSpeed, catat jumlah pukulannya sebagai In the cup in 2 strokes!, lalu nonaktifkan kelereng. Kelereng yang lebih cepat akan terus menggelinding melewati lubang.

Tekan Play dan masukkan kelereng ke lubang dengan pukulan sesedikit mungkin, lalu tekan Check.

Coba sendiri

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

    // Arahkan dengan tombol panah, isi tenaga dengan Space, pukul saat dilepas, berhenti saat melambat
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Fisika dan Gameplay