EN VI

Hướng Dẫn Lập Trình Game Unity 2D Flappy Bird Chi Tiết

Lời nói đầu

Flappy Bird là một trò chơi di động được phát hành vào năm 2013 và trở thành một trong những ứng dụng được tải xuống nhiều nhất trên Apple App Store vào tháng 1 năm 2015. Trò chơi rất đơn giản: một con chim phải bay ngang qua các chướng ngại vật trong khi tránh chúng. Người chơi nhấn vào nút để chim vỗ cánh, làm cho nó bay lên. Trò chơi kết thúc nếu con chim va vào bất kỳ chướng ngại vật nào. Đơn giản phải không? Trong bài hướng dẫn hôm nay, chúng ta sẽ học cách tạo một phiên bản sao của Flappy Bird chỉ với hơn 40 dòng mã, một vài sprite và bạn cũng sẽ học được một số kiến thức mới trong quá trình làm. Giống như bình thường, tất cả mọi thứ sẽ được giải thích dễ hiểu nhất có thể để ai cũng có thể hiểu.


Yêu cầu Kiến thức

Hướng dẫn của chúng tôi không đòi hỏi bất kỳ kỹ năng đặc biệt nào. Nếu bạn biết cách sử dụng Unity và đã nghe về GameObjects và Transforms trước đó, thì bạn đã sẵn sàng rồi. Và nếu bạn chưa biết, đừng lo lắng quá nhiều. Hãy đọc các Hướng dẫn Unity dễ hiểu hơn của chúng tôi như Unity 2D Pong Game để quen với engine trước khi bắt đầu hướng dẫn này.


Phiên bản Unity

Hướng dẫn Flappy Bird của chúng tôi sẽ sử dụng Unity 2018.4 LTS được cài đặt thông qua Unity Hub. Vui lòng điều chỉnh hướng dẫn này cho phiên bản Unity của bạn, tuy nhiên, để giữ mọi thứ đơn giản, chúng tôi khuyến khích sử dụng cùng phiên bản với hướng dẫn. Điều đó không có nghĩa là bạn không thể sử dụng phiên bản Unity mới hơn vì chúng nên hoạt động tốt, nhưng hãy nhớ rằng các phiên bản cũ hơn có thể hoặc không hoạt động.


1. Bước 1: Bắt đầu thiết lập dự án

- Hãy bắt đầu. Chúng ta sẽ khởi động Unity Hub và chọn New:


- Chúng ta sẽ đặt tên là FlappyBird, chọn bất kỳ vị trí nào như C:\GameDev, chọn 2D và nhấn Create Project:


Lưu ý: Tránh lưu các dự án trong bất kỳ vị trí nào như tài liệu hoặc desktop của bạn. Điều này có thể gây ra lỗi "đường dẫn quá dài" từ Unity. Càng ngắn đường dẫn, càng tốt.

- Sau khi Unity tạo dự án và tải trình biên tập, đến lúc bắt đầu tạo trò chơi Flappy Bird của chúng ta. Trước hết, chọn Main Camera trong Hierarchy và sau đó đặt màu nền thành màu xanh nhạt (R=198, G=208, B=230) cho màu bầu trời và điều chỉnh kích thước như được hiển thị trong hình ảnh sau:


Lưu ý: Bạn có thể cần sửa đổi giá trị cho cài đặt Size vì điều này sẽ điều chỉnh tỷ lệ của sân chơi. Tùy thuộc vào độ phân giải màn hình của bạn, các phần của cảnh có thể được hiển thị mà bình thường sẽ ở ngoài màn hình trên độ phân giải màn hình thấp hơn. Điều này là bình thường và chỉ là một vấn đề trang trí.


2. Bước 2: Phần nền

- Chúng ta sẽ bắt đầu vẽ một phông nền trời rất đơn giản trong công cụ vẽ mà chúng ta chọn:


Lưu ý: nhấp chuột phải vào hình ảnh, chọn Save As..., điều hướng đến thư mục Assets của dự án và lưu nó trong một thư mục Sprites mới.


- Sau khi lưu nó, chúng ta có thể chọn nền trong Project Area:



- Và sau đó chọn Import Settings trong Inspector:


Lưu ý: giá trị Pixels Per Unit là 16 có nghĩa là 16 x 16 pixel sẽ vừa với một đơn vị trong thế giới game. Chúng ta sẽ sử dụng giá trị này cho tất cả các texture của chúng tôi, vì Chim sẽ là 16 x 16 pixel, điều đó nên kết thúc là 1 đơn vị trong thế giới game.


- Vào đây, chúng ta sẽ thêm nền vào thế giới game bằng cách kéo nó từ Project Area vào Hierarchy:



- Bây giờ, trong chế độ xem Hierarchy, kéo mục "background" vào Main Camera, để nền trở thành một con của Main Camera:



- Cấu trúc của bạn nên như thế này:



Bây giờ, khi background là con của Camera, nó sẽ luôn đi đến nơi Camera đi. Hoặc nói cách khác, người chơi sẽ luôn nhìn thấy nền. Lưu ý: Chúng ta cũng có thể đặt một số nền bên cạnh nhau để vẫn có nền khi Camera di chuyển theo chiều ngang, nhưng việc làm cho nó là con của Camera sẽ dễ dàng hơn.

- Hãy xem Inspector và đặt vị trí background một đơn vị thấp hơn tại Y=-1, chỉ để nó phù hợp với phần còn lại của trò chơi sau này:


- Nếu chúng ta nhấn Play thì chúng ta có thể thấy nền trời của phông nền:



-Có một điều chỉnh nữa ở đây. Chúng ta sẽ sớm thêm chim và một số chướng ngại vật, vì vậy hãy đảm bảo rằng nền thực sự được vẽ phía sau tất cả những thứ khác. Unity sử dụng các thuộc tính Sorting LayerOrder in Layer của SpriteRenderer để quyết định phần nào của trò chơi nên ở phía trước phần nào khác.

Chúng ta chỉ cần đặt Order in Layer thành -1 để tất cả những thứ khác sẽ được vẽ phía trước nó:


Lưu ý: thứ tự càng lớn thì càng nằm ở phía trước. Thứ tự càng nhỏ thì càng nằm ở phía sau.


3. Bước 3: Đất

- Hãy vẽ một loại địa hình cho mặt đất. Chúng ta sẽ làm nó rất rộng để có đủ không gian cho các chướng ngại vật của chúng ta sau này:


Lưu ý: nhấp chuột phải vào hình ảnh, chọn Save As ... và lưu nó trong thư mục Assets/Sprites của dự án.


- Chúng ta sẽ chọn mặt đất trong Project Area và sau đó chỉ định cùng Import Settings mà chúng ta đã sử dụng trước đó:



- Sau đó, chúng ta kéo nó từ Project Area vào Hierarchy một lần nữa:


Lưu ý: Lần này chúng ta sẽ không làm cho nó là con của camera.


- Hãy xem Inspector. Chúng ta sẽ đặt vị trí của mặt đất tại X=16 Y=-6 và đặt Order in Layer thành 1. Điều này đặt mặt đất ở phía dưới của sân chơi và cũng đảm bảo rằng mặt đất được vẽ phía trước của tất cả mọi thứ.



4: Bước 4: Vật lý đất

- Đất cần phải là một phần của thế giới vật lý. Hiện tại nó thực sự chỉ là một hình ảnh trong thế giới game, chỉ là một hiệu ứng trực quan và không có gì nhiều hơn. Chúng ta muốn đất trở thành như một bức tường mà chim có thể va chạm với nó, vì vậy hãy chọn Add Component -> Physics 2D -> Box Collider 2D trong Trình giám sát:



- Thường thì bây giờ chúng ta đã hoàn tất, nhưng còn một điều chỉnh nữa ở đây. Sau này chúng ta sẽ thêm các chướng ngại vật vào trò chơi của chúng ta (giống như các ống màu xanh lá trong trò chơi Flappy Bird gốc), và những chướng ngại vật đó sẽ di chuyển lên và xuống vào đất. Các chướng ngại vật và đất sẽ đều là một phần của thế giới vật lý, và theo luật vật lý, không bao giờ có hai đối tượng nằm ở cùng một vị trí (hoặc trong trường hợp của chúng ta, hai Collider).

- Có nhiều cách để làm việc xung quanh điều này. Như thường lệ, chúng ta sẽ chọn cách đơn giản nhất bằng cách tạo một lớp vật lý mới mà chúng ta sẽ sử dụng cho đất và các chướng ngại vật. Sau đó, chúng ta sẽ cho Unity bỏ qua đơn giản việc va chạm giữa các lớp đó.

- Chúng ta có thể tạo một lớp mới bằng cách chọn Add Layer trong Inspector sau khi nhấp vào trình đơn Layer, mục Default sẽ được đặt là default ...



- Sau đó, chúng ta sẽ thêm một User layer, hãy gọi nó là WeirdPhysics:



- Bây giờ chúng ta có thể chọn lại đất trong Hierarchy và sau đó gán cho lớp WeirdPhysics:



- Sau đó, chúng ta chọn Edit -> Project Settings. Điều này sẽ đưa ra một cửa sổ pop-up mới. Trong thanh bên của cửa sổ pop-up mới, chúng ta phải chọn Physics 2D và vô hiệu hóa(disable) va chạm WeirdPhysics với WeirdPhysics trong Layer Collision Matrix:


Lưu ý: điều này rất hiếm khi chúng ta phải làm trong Unity, nhưng trò chơi Flappy Bird của chúng ta là một trong những ngoại lệ đó.


- Bây giờ đất sẽ không bao giờ va chạm với bất kỳ chướng ngại vật nào. Nếu chúng ta nhấn Play thì chúng ta có thể thấy trời và đất ngay bây giờ:



Phần 1 sẽ kết thúc tại đây, hẹn các bạn vào phần 2: phần về chim và các xử lý khác.... trong series hướng dẫn lập trình game 2D Flappy bird bằng Unity

Rating: 10 (1 Votes)
Comment

Login


Forgot Your Password?

Create Account


Lost your password? Please enter your email address. You will receive a link to create a new password.

Reset Password

Back to login