4/03/2014

ProjectGame 1.1 - Platform Game Đơn Giản - Tạo Camera và Level



Vẫn còn nhiều platform game kinh điển tồn tại trong kí ức mọi người như Mario, Sonic, Megaman... Platform game là dạng game với động tác nhảy và yếu tố trọng lực là chính, ngoài ra các yếu tố phụ khác đã góp phần làm nên tên tuổi của các platform game kinh điển trên. Bài viết này được chia ra làm 6 phần nhỏ. Tất cả đều là nền tảng 2D, để các bạn dễ hiểu hơn những kiến thức về lập trình game và dễ đi sâu hơn vào các project game sau trên nền tảng 3D.


Mục tiêu

>> 1.1 - Tạo Camera và Level
1.2 - Tạo nhân vật 2D
1.3 - Tạo class (lớp) CharacterController và SpriteManager
1.4 - Nhảy và yếu tố vật lý
1.5 - Tạo chìa khóa và mở cửa
1.6 - Chèn âm thanh và nút Replay

Tài nguyên
ProjectGame1.rar
Mediafire  hoặc  Google Drive


  PG 1.1 - Platform Game đơn giản: Tạo Camera và Level

B1. Vào File | New Project để tạo Project mới với tên là SimplePlatform như hình sau:


B2. Giải nén file GameProject1 vừa tải ở trên và kéo thả thư mục Game Project 1 vào thẻ Project như hình sau:


B3. Tại thẻ Project, nhấp chuột chọn Plane trong thư mục Game Project 1 | FBX và qua thẻ Inspector, điều chỉnh Scale Factor = 1. Sau đó nhấn Apply để hoàn tất việc điều chỉnh.


B4. Kéo thả Plane vào thẻ Hierarchy và đổi tên thành Background.


B5. Nhấp chọn Background trong thẻ Hierarchy, qua thẻ Inspector và điều chỉnh như hình sau:


B6. Vẫn đang chọn Background, ở thẻ Inspector, nhấp phải vào Animator và chọn Remove Component.


B7. Tại thẻ Project, nhấp chọn Create | Material và đặt tên là M_Background.


B8. Nhấp chọn M_Background, qua thẻ Inspector, nhấp vào chữ Select và chọn Background như hình sau.


B9. Vẫn đang chọn M_Background, điều chỉnh như sau:
  • Shader: Diffuse
  • Main Color: R = 164, G = 219, B = 225, A = 255
  • Base (RGB): Tiling X =  2, Y = 2; Offset: X = 0, Y = 0



B10. Nhấp chọn Background ở thẻ Hierarchy, qua thẻ Inspector, tại mục Mesh Renderer | Material điều chỉnh Element 0 là M_Background.


B11. Vào Edit | Project Setting | Tags & Layers và nhập vào các giá trị như sau:


B12. Nhấp chọn Background ở thẻ Hierarchy, qua thẻ Inspector, chọn Tag = Background và Layer = Background như hình sau:


B13. Tại thẻ Hierarchy, nhấp chọn Main Camera, qua thẻ Inspector, điều chỉnh Projection thành Perspective và Position như trong hình sau:


B14. Tại thẻ Hierarchy, nhấp chọn Create | Directional Light và qua thẻ Inspector điều chỉnh như sau:


B15. Vào GameObject | Create Empty và đổi tên thành Level. Qua thẻ Inspector, điều chỉnh các thông số như hình sau:

B16. Tại thẻ Hierarchy, nhấp chọn nút Create | Cube và đổi tên thành Floor. Đặt tag là Floor, layer là Level như hình sau:

B17. Thực hiện lại bước trên một lần nữa với tên cube là Wall, tag là Wall và layer là Level.


B18. Tại thẻ Project, nhấp chọn Create | Material và đặt tên là M_Level.


B19. Nhấp chọn M_Level vừa tạo và qua thẻ Inspector, bấm vào ô điều chỉnh màu và chỉnh các thông số màu sắc là R = 150, G = 230, B = 225, A = 255.


B20. Kéo thả M_Level ở thẻ Project vào Wall và Floor ở thẻ Hierarchy.

 


B21. Tại thẻ Hierarchy, kéo thả Wall và Floor vào Level như hình sau:


B22. Tại thẻ Hierarchy, nhấp chọn Wall và ấn Ctrl + D 6 lần để tạo thêm 6 bản sao nữa. Nhấp chọn Floor và ấn Ctrl + D 2 lần để tạo ra thêm 2 bản sao nữa. Và đặt tên như hình dưới đây:


B23. Tại thẻ Hierarchy, điều chỉnh các bản sao vừa tạo ở bước trên với tên và thông số ở thẻ Inspector như dưới đây:
  • Floor 1 : Position: x = -4, y = -9, z = 0 - Scale: x = 125, y = 15, z = 1
  • Floor 2: Position: x = -6,  y = 5, z = 0 - Scale: x = 32, y = 1, z = 1
  • Floor 3: Position: x = -25, y = 12, z = 0 - Scale: x = 19.5, y = 1, z = 1
  • Floor 4: Position: x = 14, y = 12, z = 0 - Scale: x = 20, y = 1, z = 1
  • Floor 5: Position: x = -7, y = 9, z = 0 - Scale: x = 9, y = 1, z = 1
  • Floor 6: Position: x = -31, y = 1, z = 0 - Scale: x = 6, y = 1, z = 1
  • Floor 7: Position: x = 21, y = 2, z = 0 - Scale: x = 10, y = 1, z = 1

  • Wall 1: Position: x = -49, y = 17, z = 0 - Scale: x = 36, y = 40, z = 1
  • Wall 2: Position: x = 42, y = 17, z = 0 - Scale: x = 38, y = 39, z = 1
  • Wall 3: Position: x = -7, y = 23, z = 0 - Scale: x: 1, y = 36, z = 1

B24. Nhấn Ctrl + S để save scene này lại với tên là SimplePlatform.



Hoàn thành mục tiêu 1.1

Vừa rồi chúng ta đã tạo Background đặt phía sau Level, Level bao gồm các khối gạch được xếp theo tầng (Floor) và tường (Wall) để nhân vật có thể di chuyển lên các tầng và giới hạn phạm vi di chuyển của nhân vật bởi các bức tường.





Ở đây, chúng ta điều chỉnh Main Camera ở chế độ Perspective để tạo chiều sâu cho game, khiến góc nhìn đẹp mắt hơn.


Kiến thức bổ sung
Phần Projection ở Main Camera có 2 giá trị là Orthographic (Góc nhìn trực quan) và Perspective (Góc nhìn phối cảnh). Ở chế độ Orthographic, vật thể sẽ không bị kéo dãn bởi khoảng cách của camera. Bởi vậy trong màn hình game, chúng ta chỉ thấy được 1 mặt của vật thể. Ở chế độ Perspective, chúng ta sẽ nhìn thấy được các mặt bên của vật thể do có chiều sâu, tựa như góc nhìn thực tế của mắt người bởi luật phối cảnh.


7 comments:

  1. Làm sao mình tạo thư mục Level trong thẻ Hierarchy vậy? Thanks

    ReplyDelete
  2. Nếu trong Project này thì nó đã được tạo sẵn cùng các tài nguyên ở trong file Tài nguyên ở đầu bài viết ấy, bạn tải về và kéo vào thẻ Project.

    Bạn có thể tạo thư mục bằng cách nhấp chọn nút Create trong thẻ Project và chọn Folder :D

    ReplyDelete
  3. Sorry, you can't view or download this file at this time.

    Too many users have viewed or downloaded this file recently. Please try accessing the file again later. If the file you are trying to access is particularly large or is shared with many people, it may take up to 24 hours to be able to view or download the file. If you still can't access a file after 24 hours, contact your domain administrator.
    Buồn quá, lúc muốn download thì ko down dc.

    ReplyDelete
  4. cho mình hỏi làm sao để tạo được 1 Plane như vầy được ko?

    ReplyDelete
  5. Chào anh làm sao để làm được B11 với Unity 5.3.1 phần Tags & Player đó anh em làm miết không được?. thanks.

    ReplyDelete
  6. ở thẻ inspector em ko thấy select texture là thế nào ạ hay tại phiên bản của em là free nên ko có chức năng đó

    ReplyDelete