Bàn cờ
Bài học 1 trên 14 trong khóa học Game Unity: rắn 3D của Coddy.
Trong khóa học này, bạn sẽ xây dựng trò Snake trong không gian 3D: một con rắn gồm các khối lập phương trên bàn cờ 15 x 15 nhìn từ trên xuống. Rắn di chuyển từng ô một, đổi hướng bằng các phím mũi tên hoặc WASD, ăn, lớn lên và chết khi đâm vào tường hoặc đuôi của chính mình. Snake điều khiển đầu rắn; GameManager vẫn để trống cho đến khi có thức ăn. Nút Chơi chạy trò chơi; nút Kiểm tra chấm bài.
Mỗi ô rộng một đơn vị, nằm tại các số nguyên từ -7 đến 7. Rắn không lướt đi: nó nhảy trọn một ô theo mỗi nhịp, tức một nhịp thời gian cố định, và đứng yên giữa các nhịp. Nhịp này được tính bằng bộ đếm thời gian: cộng Time.deltaTime vào mỗi khung hình, và khi bộ đếm đạt đến nhịp, hãy thực hiện hành động rồi trừ đi thời lượng của nhịp:
timer += Time.deltaTime;
if (timer >= 0.5f)
{
timer -= 0.5f;
Step();
}Trừ đi thời lượng của nhịp thay vì đặt bộ đếm về 0 sẽ giữ lại phần thời gian vượt quá nhịp đó, nhờ vậy các nhịp không bị trễ dần. Hãy dùng trường tick, không dùng một con số.
Thử thách
DễCho đầu rắn di chuyển một ô mỗi nhịp.
- Trong
Snake, thêmprivate float timer; - Trong
Update(), cộngTime.deltaTimevào timer; khitimer >= tick, trừ tick khỏi timer rồi gọiStep(). - Trong
Step(), cộngdirectionvàotransform.position.
Nhấn Chơi: đầu rắn di chuyển sang phải từng ô một, tạm thời đi ra khỏi bàn chơi. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // Số giây giữa hai bước di chuyển
private Vector3 direction = Vector3.right;
void Update()
{
// Cứ mỗi tick giây, thực hiện một Step()
}
void Step()
{
// Di chuyển đầu một ô theo hướng direction
}
}
Tất cả bài học trong Game Unity: rắn 3D
Tự luyện tập: Playground Unity