Menu
CoddyTech

Papan Permainan

Pelajaran 1 dari 14 dalam kursus Game Unity: Snake 3D di Coddy.

Dalam kursus ini, kamu membuat Snake dalam 3D: ular dari kubus di papan berukuran 15 kali 15 yang terlihat dari atas. Ular bergerak satu sel setiap kali, berbelok dengan tombol panah atau WASD, memakan makanan, tumbuh, dan mati jika menabrak dinding atau ekornya sendiri. Dua skrip menjalankannya: Snake pada kepalanya, dan GameManager, yang tetap kosong sampai makanan ditambahkan di bab berikutnya.

Lebar setiap sel satu unit dan pusatnya berada pada bilangan bulat: x dan z berkisar dari -7 sampai 7, dan setiap sel berada pada y 0. Ular tidak pernah meluncur di antara sel. Ular melompat satu sel penuh pada setiap ketukan, yaitu irama tetap seperti 0.15 detik, lalu diam di antaranya.

Ketukan di Unity menggunakan timer: tambahkan Time.deltaTime pada setiap frame, lalu saat timer mencapai interval, lakukan tindakan dan kurangi timer sebesar interval. Suar ini berkedip sekali setiap detik:

public Light beacon;
public float interval = 1f;
private float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        timer -= interval;
        beacon.enabled = !beacon.enabled;
    }
}

Mengurangi timer sebesar interval, alih-alih mengatur ulang timer ke 0, mempertahankan bagian frame yang melewati interval, sehingga ketukan tidak terlambat.

challenge icon

Tantangan

Mudah

Kepalanya adalah kubus hijau di sel (-3, 0, 0). Snake memiliki tick, 0.15 detik, dan direction, Vector3.right.

  1. Tambahkan private float timer;.
  2. Di Update(), tambahkan Time.deltaTime ke timer. Saat nilainya mencapai tick, kurangi timer sebesar tick dan panggil Step().
  3. Di Step(), gerakkan kepala satu sel sepanjang direction.

Tekan Play dan amati kepala melangkah ke kanan. Untuk sementara, kepala keluar dari papan: dinding akan dibuat di pelajaran 4. Lalu tekan Check.

Coba sendiri

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // detik antara dua langkah
    private Vector3 direction = Vector3.right;

    void Update()
    {
        // Setiap tick detik, jalankan Step() sekali
    }

    void Step()
    {
        // Gerakkan kepala satu sel searah direction
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Game Unity: Snake 3D