Menu
CoddyTech

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ố.

challenge icon

Thử thách

Dễ

Cho đầu rắn di chuyển một ô mỗi nhịp.

  1. Trong Snake, thêm private float timer;
  2. Trong Update(), cộng Time.deltaTime vào timer; khi timer >= tick, trừ tick khỏi timer rồi gọi Step().
  3. Trong Step(), cộng direction vào transform.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