Tutorial làm game 2D Xếp Hình với Unity3D (Phần 3)

7848

Bài 3: Game Xếp Hình Part II

Phần 2 trong tút làm game xếp hình,  chúng ta đã biết cách tạo 1 project game 2D trong Unity, cách import tài nguyên vào game bằng cách kéo thả, cách thêm và chỉnh sửa các thông số của các đối tượng trong game (game object),. Trong phần này, chúng ta sẽ tiếp tục tìm hiểu cách tạo ra các khối hình và sinh các khối hình ngẫu nhiên trong game nhé.

  1. Tạo các khối hình

Bây giờ, chúng ta sẽ tạo các khối hình IJLOST và Z như đã quy ước trong bài 1 nhé. Để nhằm mục đích sử dụng lại các khối hình, chúng ta cần tạo prefab cho mỗi khối hình. Nếu đã quên khái niệm Prefab là gì thì các bạn đọc lại bài 1 nhé.

Chúng ta sẽ tạo 1 GameObject bằng cách chọn GameObject -> Create Empty  trên thanh menu.

1

Một Game Object được thêm vào cửa sổ Hierachy.

2

Chúng ta kéo thả block (hình vuông) 4 lần vào Game Object vừa tạo ra trong Hierachy. Ta sẽ được 4 block con trong Game Object như sau:

3

Chúng ta sẽ tiến hành sắp xếp vị trí các ô vuông để được các khối hình phù hợp.

Để tạo khối hình chữ O như quy ước ban đầu, các bạn chọn vào các block ô vuông tương ứng và thay đổi vị trí của chúng trong phần Inspector. Cụ thể, ta thay đổi vị trí X, Y.

  • X=0 Y=0
  • X=0 Y=1
  • X=1 Y=0
  • X=1 Y=1

Kết quả:

4

Bây giờ, ta thay đổi tên của GameObject thành GroupO trong Inspector.  Và kết quả ở Hierarchy

5

Để tạo Prefab cho GroupO, ta kéo thả game Object tên GroupO từ Hierarchy vào Project Area như sau:

6 

Bây giờ, chúng ta không cần GroupO trên Hierarchy nữa và có thể xóa nó đi.

Làm tương tự với các khối hình I, J, Z, …

7

Sinh các khối hình với class Spawner

Để sinh ra các khối hình một cách ngẫu nhiên trong quá trình chơi game, chúng ta cần tạo Spawner cho chúng. Tạo một GameObject trong Hierarchy và đặt tên là Spawner, sau đó set vị trí của nó ở trên đầu của Scene bằng cách thay đổi các thông số của nó trong cửa sổ Inspector như sau:

8 

Spawner chứa phương thức spawnNext nhằm sinh ra một cách ngẫu nhiên các khối hình.

Bây giờ, bạn hãy Click chuột phải vào Project Area, lựa chọn Create ->C# Script đặt tên Spawner. Đầu tiên, chúng ta sẽ thêm một mảng game Object chứa các khối hình sinh ngẫu nhiên trong game public GameObject[] group. Trong cửa sổ Inspector, chúng ta sẽ kéo thả các khối hình vào danh sách mảng GameObject:

9

Xử lý phương thức spawnNext  như bên dưới. sử dụng Instantiate để tạo ra các thể hiện của các khối hình.

10

Chú ý: transform.position là vị trí của Spawner, Quaternion.identity là kiểu mặc định góc quay của khối hình.

Spawner sẽ sinh ra 1 khối hình ngẫu nhiên ngay từ khi bắt đầu game vì thế, ta gọi spawnNext() ngay trong phương thức Start() như sau:

11

Phương thức Start được gọi ngay sau khi game bắt đầu được chơi.

Chúng ta sẽ  thêm các khối hình vào mảng khối hình vừa tạo ra trong script bằng cách kéo thả các prefabs vào mảng Groups của file Script trong Inspector . Chọn Spawner trong Hierarchy và click Add Component -> Scripts -> Spawner trong  Inspector.

12

Hãy nhấn Play để xem thành quả nhé:

13 

Kết luận: Trong phần này, các bạn đã biết tạo gameObject, tạo ra các Prefabs cho game object, tạo file script và gắn với Object tương ứng.

Phần tiếp theo, chúng ta sẽ tìm hiểu về cách xử lý để cách khối hình rơi xuống và ghép lại được với nhau để ăn điểm nhé.

Hẹn gặp lại các bạn !