Trangitg / se7.2

Lập trình game với Unity #3
0 stars 0 forks source link

se7.2

Lập trình game với Unity #3

SUBWAY SUFFER

Lập trình game casual thể loại subway surfers.

Thành viên nhóm: 1.Nguyễn Mai Phương 21000200 2.Lò Thị Trang 21001592 (Leader) 3.Bùi Minh Vũ 21001600 4.Lê Minh Vũ 21001601

1. Mô tả game

Mô tả cô đọng trong 5-10 dòng

1.2. Các usecase trong game

Các usecase chính, nhân vật có thể chơi như nào. Cần có hình ảnh đi kèm..

Nếu Code item là: 2 skis, 4 headStart, 5 scoreBooster: image

                Nếu số tiền hiện tại > giá tiền vật phẩm
                    Nếu số lượng item hiện tại < số lượng item tối đa(Trong Modules.cs: maxHoverboard = 9999; maxHeadstart = 10; maxScorebooster = 7;)
                        Số lượng item hiện có + 1
                        Trừ số coin hiện tại bằng textCost và trả lại giá trị coin hiện tại là textCoin
                        Trả lại số lượng item hiện có textNote
                    Nếu số lượng item hiện tại = số lượng item tối đa
                        textNote in ra thông báo lỗi maximumNumber 
                Nếu không đủ tiền 
                    textNote in ra thông báo lỗi không đủ tiền

Nếu Code item là: 3 mysteryBox image

                Nếu số tiền hiện tại > giá tiền vật phẩm
                    Trừ số coin hiện tại bằng textCost và trả lại giá trị coin hiện tại là textCoin
                    Di chuyển đến PageOpenBox hoạt ảnh mở hộp   
                Nếu không đủ tiền 
                    textNote in ra thông báo lỗi không đủ tiền

image

2. Các sửa đổi cho game

Mô tả chi tiết các sửa đổi trong game, bao gồm hình ảnh, thuyết minh, thuật toán hoặc các Class hay method thêm/sửa/xóa

2.1. Thay đổi 1: Tắt box tìm đối thủ

Screenshot (186) Trong game, box tìm đối thủ được quản lý bởi một đối tượng gọi là AutoFindOpponentsBox. Trong AutoFindOpponentsBox, có một script được gọi là DeactiveMessageBox.cs, đây chịu trách nhiệm điều khiển hiển thị và ẩn đi box thông báo trạng thái. Screenshot (187) Để tắt box thông qua việc nhấn nút ButtonClose, ta cần thêm một hàm mới, chẳng hạn như ButtonCloseMessage(). Hàm này được liên kết với nút ButtonClose và khi được gọi, nó sẽ thực hiện hành động tắt box hiển thị trạng thái bằng cách tương tác với DeactiveMessageBox.cs. Điều này giúp người chơi đóng box một cách dễ dàng khi cần thiết.
Screenshot (188) Hàm này được kích hoạt khi người dùng nhấn vào nút đóng (ButtonClose) trên hộp thoại. Đầu tiên, nó chạy một âm thanh thông báo việc nhấn nút (Module.PlayAudioClipFree). Sau đó, nó sử dụng một Animator để chơi một trigger animation ("TriClose") trên đối tượng này. Điều này thường được sử dụng để kích hoạt một hoạt ảnh đóng hộp thoại. Sau đó vào Assets\Scenes\GameMain.unity Trong phần Hierarchy, Vào GameMain\ContainGameMain\Canvas\FormGameMenu\MessageBox\AutoFindOpponentBox\AllContents\ButtonClose Tại Component Button, Thêm Script AutoFindOpponentBox vào hàm On Click () và chọn function ButtonCloseMessage() Screenshot 2024-01-03 003905

2.2. Thay đổi 2: Thêm vật phẩm Ball

2.7.Thay đổi 7: Thêm vật phẩm trong cửa hàng (mua key bằng vàng)

2.8.Thay đổi 8: Thêm ván trượt

SuportSkis : true

TypeBarriel : NevelFall

TypeFalling : Back

NeverDestroy : true Screenshot 2024-01-03 002339

2.10.Thêm các script Facebook

- Import Package Facebook SDK chính thức của Meta (https://developers.facebook.com/docs/unity?locale=vi_VN) vào Unity
- Tạo một app trên Meta for Developers và thiết lập các cài đặt cơ bản, lấy App ID và Client Token điền vào tab Edit settings của Facebook SDK

1LV 2LV 3LV

- Thêm Script FacebookController.cs vào Assets\Scripts\General với các hàm:
1. *Awake()*
- Hàm này được gọi khi script được khởi tạo.
- Khởi tạo và kích hoạt ứng dụng Facebook, cũng như đảm bảo rằng đối tượng này sẽ không bị hủy khi chuyển giữa các scene trong Unity.

2. *OnApplicationPause(bool pauseStatus)*
- Hàm được gọi khi ứng dụng tạm dừng hoặc quay lại chạy.
- Kích hoạt lại ứng dụng Facebook khi ứng dụng của chúng ta quay lại chạy.

3. *SetInit()*
- Gọi sau khi khởi tạo Facebook, đối phó với menu Facebook dựa trên việc người dùng đã đăng nhập hay chưa.

4. *FBlogin()*
- Bắt đầu quá trình đăng nhập Facebook với các quyền đọc cụ thể.

5. *AuthCallback(IResult result)*
- Hàm gọi lại sau mỗi lần đăng nhập.
- Nếu đăng nhập thành công, cập nhật thông tin người chơi và xử lý nhiệm vụ bổ sung như thưởng xu.

6. *DealWithFBMenus(bool isLoggedIn)*
- Xử lý menu Facebook dựa trên việc người chơi đã đăng nhập hay chưa.

7. *DisplayUsername(IResult result)*
- Hàm gọi lại sau khi lấy tên người chơi từ Facebook.
- Cập nhật Modules.fbName với tên đầu tiên của người chơi.

8. *DisplayProfilePic(IGraphResult result)*
- Hàm gọi lại sau khi lấy hình đại diện của người chơi từ Facebook.
- Tạo một Sprite từ texture hình đại diện và đặt nó vào Modules.fbMyAvatar.

9. *ShareWithFriends()*
- Gọi API Facebook để chia sẻ nội dung (feed) với bạn bè.

10. *InviteFriends()*
    - Mời bạn bè tham gia trò chơi sử dụng API AppRequest của Facebook.

11. *TakeScreenshot()*
    - Coroutine để chụp ảnh màn hình và đăng lên Facebook.

12. *OnPostScreenShot(IGraphResult result)*
    - Hàm gọi lại sau khi đăng ảnh lên Facebook.

13. *PostScore(bool check)*
    - Đăng điểm của người chơi lên Facebook nếu check là false, ngược lại lấy điểm từ Facebook sử dụng GetScores().

14. *OnPostScore(IGraphResult result)*
    - Hàm gọi lại sau khi đăng điểm của người chơi lên Facebook.

15. *GetScores()*
    - Lấy điểm từ Facebook sử dụng Graph API.

16. *OnGetScore(IGraphResult result)*
    - Hàm gọi lại sau khi thành công lấy thông tin điểm từ Facebook.
    - Tạo một panel hiển thị điểm bạn bè.

17. *DeserializeScores(string response)*
    - Giải mã phản hồi từ cuộc gọi API Facebook để lấy điểm.

18. *GetPictureURL(string facebookID, int? width, int? height, string type)*
    - Tạo URL để lấy ảnh đại diện của người chơi từ Facebook với các tham số như chiều rộng, chiều cao và loại ảnh.

3. Hướng dẫn Khởi tạo dự án

3.1. Cài Unity bản từ 2022 trở đi

Đăng ký tài khoản Unity bằng account sinh viên để có thể tham gia chương trình Education License của Unity

3.2. Mở dự án trên Unity và chạy thử ngay trên Màn hình Unity Editor

Vào menu File-> Open Scene, chọn vào file Assets/Scene/LoadData.unity Bấm nút Play của Unity để chạy thử