Học làm game (4) - Unity (game Tetris tiếp)

 Bài trước: Học làm game (3) - Làm quen với Unity

-----

Tạo các khối hình (groups) I, J, L, T, S, Z, O

Tạo GameObject rỗng bằng cách bấm vào menu GameObject > chọn Create Empty. Unity sẽ tạo ra một GameObject trong cửa sổ Hierarchy.

Chuột phải vào GameObject > chọn Remane > đổi tên thành GroupO

Kéo ảnh block trong cửa sổ Assets thả vào đối tượng GroupO trong cửa sổ Hierarchy, làm 4 lần.


Chúng ta sẽ thiết lập tọa độ cho các block để tạo ra khối-O (GroupO). Chọn lần lượt các block, và thiết lập giá trị như sau:

– Block: X = 0 Y = 0

– Block (1): X = 0 Y =1

– Block (2): X =1 Y =0

– Block (3): X = 1 Y =1

Kết quả,


Với mỗi Khối hình, chúng ta sẽ tạo ra một Prefab bằng cách kéo Khối hình (GroupO) từ cửa sổ Hierarchy vào cửa sổ Project.

– Prefab là viết tắt của pre-fabricated, nghĩa là chế sẵn (chế tạo sẵn, tiền chế). Prefab là một GameObject hoàn chỉnh sau khi thêm các thuộc tính và được lưu trữ để tái sử dụng. Các GameObject được nhân bản từ một prefab sẽ giống nhau hoàn toàn. Để tạo ra một prefab, chỉ cần kéo một GameObject từ cửa sổ Hierarchy vào cửa sổ Project.


Sau khi tạo xong prefab, chúng ta không cần GroupO trong cửa sổ Hierarchy nữa, nên có thể chuột phải vào nó > chọn Delete để xóa.

Tạo các khối hình còn lại I, J, L, T, S, Z

– Giả sử, mỗi ô vuông (block) có kích thước mỗi cạnh là 1cm, vậy khi thiết lập tọa độ X = 0, Y = 0, ô vuông này sẽ được đặt ở đâu trên hệ tọa độ Oxy. Bạn có thể chọn biểu tượng như trong hình dưới đây để quan sát và suy nghĩ. Tọa độ (x,y) có phải là của tâm của ô vuông không?


GroupI

– Block: X = 0 Y = 0

– Block (1): X = 0 Y = 1

– Block (2): X =0 Y = 2

– Block (3): X = 0 Y = 3

GroupJ

– Block: X = 0 Y = 0

– Block (1): X = 1 Y = 0

– Block (2): X = 1 Y = 1

– Block (3): X = 1 Y = 2

GroupL

– Block: X = 0 Y = 0

– Block (1): X = 1 Y = 0

– Block (2): X = 0 Y = 1

– Block (3): X = 0 Y = 2

GroupT

– Block: X = 1 Y = 0

– Block (1): X = 1 Y = 1

– Block (2): X = 0 Y = 1

– Block (3): X = 2 Y = 1

GroupS

– Block: X = 0 Y = 0

– Block (1): X = 1 Y = 0

– Block (2): X = 1 Y = 1

– Block (3): X = 2 Y = 1


GroupZ

– Block: X = 0 Y = 0

– Block (1): X = 1 Y = 0

– Block (2): X = 0 Y = 1

– Block (3): X = -1 Y = 1


Vậy là chúng ta đã tạo xong các khối hình. Mỗi khối hình là một prefab.


1.3       Xem và đọc thêm

[1] Về Unity: https://vi.wikipedia.org/wiki/Unity_(ph%E1%BA%A7n_m%E1%BB%81m_l%C3%A0m_game)

[2] Unity: https://en.wikipedia.org/wiki/Unity_(game_engine)

[3] https://noobtuts.com/unity/2d-tetris-game

[4] https://www.youtube.com/watch?v=89it3LA6RvI&list=PLBIVlCN8diTBOSFTedMDZ5tndeVdvRSsq&index=4

1.4       Bài tập và thực hành

Bài tập 1. Viết lại các đoạn mã trong phần lý thuyết.

1.5       Câu hỏi ôn tập

Câu 1. Phát biểu nào về Unity không đúng?

A. Unity là một phần mềm làm game (game engine) đa nền tảng

B. Sử dụng ngôn ngữ lập trình JavaScript

C. Hỗ trợ làm game 2D, 3D

D. Unity có thể tạo ra game chạy trên máy tính, thiết bị di động, trình duyệt, console, thực tế ảo

Câu 2. The __________ is a hierarchical text representation of every GameObject in the Scene. Each item in the Scene has an entry in the hierarchy, so the two windows are inherently linked. The hierarchy reveals the structure of how GameObjects attach to each other.

A. Scene view

B. Inspector window

C. Project window

D. Hierarchy window

Câu 3. The ________allows you to view and edit all the properties of the currently selected GameObject

A. Inspector window

B. Project window

C. Hierarchy window

D. Game view

Câu 4. ______ là một GameObject hoàn chỉnh sau khi thêm các thuộc tính và được lưu trữ để tái sử dụng. Các GameObject được nhân bản từ một ____ sẽ giống nhau hoàn toàn. Để tạo ra một ______, chỉ cần kéo một GameObject từ cửa sổ Hierarchy vào cửa sổ Project.

A. Scene

B. Prefab

C. Character

D. Asset

Câu 5. Trong quá trình thiết kế khối hình (Group) cho game Tetris, bạn thiết lập các tọa độ cho các ô vuông tương ứng là: Block: X = 1 Y = 0; Block (1): X = 1 Y = 1; Block (2): X = 0 Y = 1; Block (3): X = 2 Y = 1. Kết quả sẽ tạo ra khối hình gì?

A. GroupO

B. GroupL

C. GroupT

D. GroupI

Đáp án: 1(B), 2(D), 3(A), 4(B), 5(C)

-----

Cập nhật: 19/3/2023

Bài sau: Học làm game (5) - Lập trình với Unity