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.
Tantangan
MudahKepalanya adalah kubus hijau di sel (-3, 0, 0). Snake memiliki tick, 0.15 detik, dan direction, Vector3.right.
- Tambahkan
private float timer;. - Di
Update(), tambahkanTime.deltaTimeke timer. Saat nilainya mencapaitick, kurangi timer sebesartickdan panggilStep(). - Di
Step(), gerakkan kepala satu sel sepanjangdirection.
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
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.