1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn kiến trúc phần mềm Đề tài mô hình unity game mvc

57 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Unity Game Mvc
Tác giả Tang Quang Nghia, Nguyễn Văn Phương, Nguyễn Văn Thanh
Người hướng dẫn Nguyễn Thị Bích Ngọc
Trường học Trường Đại Học Sao Đỏ
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2024
Thành phố Sao Đỏ
Định dạng
Số trang 57
Dung lượng 4,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhờ những điều đó, nên C# được sử dụng rộng rãi trong việc phát triển các ứng dụng Windows dành cho máy tính để bàn, game, ứng dụng web và các ứng dụng dành cho thiết bị di động.. Ngoài

Trang 1

BAI TAP LON KIEN TRUC PHAN MEM

Đề tài: Mô hình Unity Game MVC

Sinh viên thực hiện:

Giảng viên hướng dân:

Lớp:

Sao Đó, ngày

Tang Quang Nghia Nguyễn Văn Phương Nguyễn Văn Thanh Nguyễn Thị Bích Ngọc DK12 - CNTT

thang nam 2024

Trang 2

TRƯỜNG ĐẠI HỌC SAO ĐỎ KHOA CONG NGHE THONG TIN

BÀI TẬP LỚN KIEN TRUC PHAN MEM

Đề tài: Mô hình Unity Game MVC

Sinh viên thực hiện: Tang Quang Nghia

Nguyễn Văn Phương Nguyễn Văn Thanh Giảng viên hướng dẫn: Nguyễn Thị Bích Ngọc

Lớp: DK12 —- CNTT2

Nguyễn Văn Phương

Nguyễn Văn Thanh

Trang 3

NHẬN XÉT

(Lời nhdn xét cua GVHD)

Sao Do, ngay 23 thang 3 nam 2024

Nguyễn Văn Phương

Nguyễn Văn Thanh

Trang 4

Lời mở đầu

Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, Internet ngày cảng giữ vai trò quan trọng trone các lĩnh vực khoa học kĩ thuật và đời sống Dĩ

nhiên các bạn đã được nghe nói nhiều về Internet, nói một cách đơn giản, Internet là

một tập hợp máy tính nỗi kết với nhau, là một mạng máy tính toàn cầu mà bắt kì ai

cũng có thể kết nối bằng máy PC của họ Với mạng Internet, tin học thật sự tạo nên

một cuộc cách mạng trao đổi thông tin trong moi lĩnh vực văn hóa, xã hội, chính trị,

kinh tế

Trong thời đại ngày nay, thời đại mà “người người làm Game, nhà nhà làm Game” thì việc có một Ứng dụng Game để giải trí không còn là điều gì xa xỉ nữa

Thông qua Game chúng ta có thể thư giãn, giải trí hơn sau những stress căng thắng

Với lí do đó, được sự hướng dẫn và giúp đỡ của cô Nguyễn Thị Bích Ngọc,

em da chon dé tai “Game MVC” lam dé tai cho bai tập lớn môn học Kiến trúc phần

mềm cua minh

Song vì thời gian có hạn, và còn thiếu nhiều kinh nghiệm và kỹ năng còn hạn chế Nên chắc chắn không tránh khỏi những thiểu sót Vì vậy em rất mong nhận

được nhiều ý kiến đóng góp từ thầy cô và bạn bè để chúng em hoàn thành tốt đề tài

này Chân thành cảm ơn thầy cô và các bạn

Nguyễn Văn Phương

Nguyễn Văn Thanh

Trang 5

Lời cảm ơn

Đề bải tập này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ của thầy cô Với tỉnh cảm sâu sắc, chân thành, cho phép em được bày tỏ lòng biết ơn

sâu sắc đến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập và

nghiên cứu đề tài

Trước hết chúng em xin gửi tới quý thầy cô Khoa Công Nghệ Thông Tin trường Đại học Sao Đỏ lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc

nhất Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo và những kiến thức mà các

thầy cô đã truyền đạt đã giúp em có thế hoàn thành đề tài môn Kiến trúc phần mềm

Đặc biệt em xin gửi lời cảm ơn chân thành nhất đến giảng viên Nguyễn Thị Bích Ngọc đã quan tâm giúp đỡ tận tình chúng em hoàn thành tốt đỗ án này trong

thời gian qua

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, đồ án này sẽ

không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp

ý kiến của các thầy cô, để em có thê bổ sung, nâng cao kinh nghiệm và kỹ năng của

ban than dé phục vụ cho công việc thực tế sau này

Em xin chân thành cảm ơn!

Nguyễn Văn Phương

Nguyễn Văn Thanh

Trang 6

MỤC LỤC

1.1.2, Uu didn cia CHa ecceeeesesssesssesssneesneessiesssnnessnnsesnnesenees 2

1.1.3 Nhược điểm cotta CHa cccccccccccccccscscscecececscsssssesevsvevesevetsssesevsvestevescevsees 3 1.1.4 Sự khác biệt piữa C# với các ngôn neữ lập trình khác 3

In t na 4

1.2.2 Tính năng cơ bản của nIÉy S11 1112111211111 11112221 2 11 ke 4

1.2.3 Ưu điểm của Unity 5 s S22 11211212112112117221 2E rrrreg 5

1.2.4 Nhược điểm của Uniiy - s1 HH 21212121 erreg 5

2.2.1 Yêu cầu chức năng ©1112 E1 111212112111111 1111211111211 tu 8

2.2.2 Yêu cầu hệ thống 2-2 ST EEE111112111111111121111121 1112111 tu 9

Nguyễn Văn Phương

Nguyễn Văn Thanh

Trang 7

3.1 Giao Diện Game MVC 10

3.3.1 Giao Diện Menu Came 022011011111 11v HH ky se 10 3.3.2 Giao Diện Các Màn Chơi cccccccesccssecececseeeeseseceseusaenseeeess 11

3.2.1 Di chuyén va Animation playet i c cccccccccccccseccsseseeesteeseseseeen 12 3.2.2 Xử lý va chạm cho Payer - ¿+ c2 2 2132221112111 122111222 x+2 17 3.2.3 Xử lý va chạm cho Enemy 2 2 22122221112 111111111112 x+2 34

E2: an 37

3.2.5 Tắm bật nhảy - - S1 1111111 1111121121111 1101101111 rưyu 40 3.2.6 Nút dừng và tiếp tục game +- 122211 11211112112112.11 151 etg 43

3.2.7 Hình ảnh chuyên động trong Menu - 2 s22 czczxzzze 45

Nguyễn Văn Phương

Nguyễn Văn Thanh

Trang 8

DANH MỤC HÌNH ÁNH

Hình 3.1 Ảnh giao diện menu game MVC

Hình 3.2 Ảnh giao diện menu hướng dẫn game MVC -

Hinh 3.5 Giao digén Game MVC Man 2

Hình 3.7, Giao diện thém animation cho nhan vat

Hình 3.9 Tạo Ui thời gian và điểm số

Hình 4.0 Thiết đặt slider cho thanh máu

Hình 4.1 GameObject chứa các file âm thanh

Hình 4.2 Thiết đặt Bệ Bay trong Unity

Hình 4.4 Thiết đặt nút tạm dừng và tiếp tục

Hình 4.5 Thiết dat raw image

Trang 9

CHUONG 1: CO SO LY THUYET

1.1 Sơ lược về ngôn ngữ lập trình C#

C# (hay còn gọi là C Sharp, là ngôn ngữ lập trình hướng đối tượng, hiện đại do

Microsoft phát triên như một phần của nền tảng NET Nó được giới thiệu lần đầu

tiên vào năm 2000 và kê từ đó đã trở thành một trong những ngôn ngữ lập trình

được sử dụng rộng rãi nhất trong ngành

C# có thiết kế đơn giản, mạnh mẽ và linh hoạt Sở hữu một cú pháp tương tự

như các ngôn ngữ lập trình phô biến, bao gồm Java và C++, giúp các nhà phát triển

đã quen thuộc với các ngôn ngữ nảy dễ làm quen

Một trone những tính năng chính của C# là an toàn kiểu của nó, giúp ngăn ngừa

các lỗi lập trình có thể xảy ra với các ngôn ngữ khác Không những vậy, nó còn hỗ

trợ quản lý bộ nhớ tự động thông qua trình thu gom rác, giúp đễ dàng viết mã đáng

tin cậy mà không làm rò rỉ bộ nhớ hay gây ra bất kỳ sự cố nào

Nhờ những điều đó, nên C# được sử dụng rộng rãi trong việc phát triển các ứng

dụng Windows dành cho máy tính để bàn, game, ứng dụng web và các ứng dụng

dành cho thiết bị di động Ngoài ra, nó còn được sử dụng trong phát triển phần mềm

doanh nghiệp, với nhiều công ty lớn sử dụng C# để xây dựng các ứng dụng kinh

doanh của họ

Với tông quan những điều trên, thì chúng ta dễ dàng nhận thấy C# là một ngôn

ngữ mạnh mẽ và linh hoạt, phù hợp với nhiều nhiệm vụ lập trình Cho dù bạn mới

bắt đầu làm quen với lập trình hay là một nhà phát triển có kinh nghiệm, thì C# luôn

là một ngôn ngữ tuyệt vời để học và sử dụng khi muốn xây dựng các ứng dụng

mạnh mẽ, đáng tin cậy và có thể mở rộng

1.1.1 Ứng dụng của ngôn ngữ C#

- Phát triển ứng dụng Desktop: C# được sử dụng rộng rãi để xây dựng ứng

dụng máy tính trên nền tảng Windows Bằng việc sử dụng cac framework như

Windows Forms hodc WPF (Windows Presentation Foundation), lap trinh vién có

thé tạo ra các ứng dụng giao diện người dùng (GUI) đa dạng và mạnh mẽ

-_ Phát triển ứng dụng di động: C# được sử dụng trong việc phát triển ứng dụng

di động trên các nền tảng như ¡iOS (sử dụng Xamarin), Android (sử dụng Xamarin

hoặc Native Android Development), và Windows Phone (sử dụng Windows Phone

SDK)

- Phat trién img dung web: C# cé thé duge str dung dé phat triển các ứng dụng

web théng qua framework ASP.NET ASP.NET cung cấp nhiều công cụ vả thư viện

Trang 10

hỗ trợ để xây dựng các trang web động, ứng dụng web theo mô hinh MVC (Model-

View-Controller), va web service

- Game Development: C# ciing duoc su dung trong viée phat triển game Với

sự hỗ trợ của engine nhu Unity, lap trinh vién có thé tạo ra các trò chơi 2D và 3D

trên nhiều nền tảng khác nhau C# cung cấp tính năng mạnh mẽ và dễ sử dụng để xử

lý dé hoa, vat ly, trí tuệ nhân tao va nhiều khía cạnh khác của game

- Phat trién ung dung dia trén IoT: Voi su phat trién cua Internet of Things

(IoT), C# cung cấp các thư viện và amework như Windows loT Core để xây đựng

các ứng dụng điều khiến thiết bị thông qua vi điều khiên nhúng hoặc Raspberry Pi

- Phat trién ứng dụng trong lĩnh vực khoa học và công nghệ: C# có thể được

sử dụng để phát triển các ứng dụng trong lĩnh vực khoa học, công nghệ và tính toán

số Các thư viện như Math.NET Numerics cung cấp các công cụ va thuật toán để xử

lý dữ liệu số học và tính toán khoa học

1.1.2 Ưu điểm của C#

- Ngôn ngữ mạnh mẽ và linh hoạt: C# là một ngôn ngữ mạnh mẽ và linh hoạt,

kết hợp các tính năng hiện đại và cú pháp dễ hiểu Nó cung cấp nhiễu tính năng như

lập trình hướng đối tượng, thuộc tính, sự kiện, xử lý ngoại lệ, phân tích cú pháp

LINQ (Language Integrated Query) va nhiều khái niệm tiện ích khác

- H6 tro đa nền tảng: C# không chỉ hỗ trợ phát triển trên nền tảng Windows,

mà còn có thể sử dụng để phát triển ứng dụng trên nhiều nền tảng khác như iOS,

Anđroid và Linux Điều này được thực hiện thông qua các céng cu va framework

nhu Xamarin va NET Core

- Sy phat trién manh mé cua hé sinh thai NET: C# la mét phan cua hé sinh

thai NET, cung cap một tập hợp rộng rãi các thư viện và framework hỗ trợ phát

triển ứng dụng Các framework như ASP.NET, WPEF, Windows Forms và Entity

Framework giúp giảm đáng kế thời gian và công sức trong quá trình phát triển ứng

dụng

- Tich hop tốt với công nghệ Microsoft: C# được phát triển bởi Microsoft và

có tích hợp tốt với các công nghệ và dịch vụ của Microsoft như Azure, SQL Server,

SharePoint và Office Điều nảy giúp lập trình viên dễ dàng tích hợp ứng dụng vào

hệ thống va dich vu cua Microsoft

- Cộng đồng lớn và hỗ trợ mạnh mẽ: C# có một cộng đồng lập trình viên rộng

lớn và nhiều tài liệu hướng dẫn, diễn đàn và nguồn tài nguyên trực tuyến khác Điều

nảy giúp lập trình viên dễ dàng tìm kiếm giải pháp, chia sẻ kiến thức, và nhận được

sự trợ giúp khi gặp khó khăn trong quá trình phát triển

Trang 11

- An toan và bảo mật: C# có hệ thống kiểm tra kiểu mạnh mẽ và cung cấp các

cơ chế an toàn bảo mật như quản lý bộ nhớ tự động (parbagpe collection), kiểm tra

ngoai 1é (exception handling) va phan quyén (permission) Diéu nay giup giam thiéu

lỗi và tăng cường tính bảo mật của ứng dụng

1.1.3 Nhược điểm của C#

Mặc dù C# là một ngôn ngữ lập trình phố biến và mạnh mẽ, nhưng nó cũng

có một số nhược điểm Dưới đây là một số nhược điểm của C#:

-_ Giới hạn nền tảng: Mặc dù C# đã phát triển và hỗ trợ đa nền tảng thông

qua NET Core và Xamarin, nhưng nó vẫn chủ yếu tập trung vào nền tảng

Windows Việc phát triển ứng dụng trên các nền tảng khác như macOS và Linux có

thể sặp một số hạn chế và khó khăn

-_ Tính tương thích ngược: Một số phiên bản mới của C# và NET Framework

có thê không tương thích ngược với các phiên bản cũ hơn Điều này có thể gây khó

khăn khi cần phải cập nhật hoặc duy trì các dự án sử dụng các phiên bản cũ của

ngôn ngit va framework

- Quản lý bộ nhớ: Mặc dù C# hỗ trợ quản lý bộ nhớ tự động thông qua

øarbage collector, điều này có thể gây ra sự trễ hệ thống (latency) và sử dụng tài

nguyên hệ thống nhiều hơn so với việc quản lý bộ nhớ thủ công Điều này đặc biệt

quan trọng trong các ứng dụng yêu cầu hiệu năng cao hoặc thời gian thực

-_ Tốc độ thực thi: Mặc dù C# là một ngôn ngữ được biên dịch, tuy nhiên, nó

thường chậm hơn so với các ngôn ngữ gần sát mã máy như C+ hay C Điều này có

thể ảnh hưởng đến hiệu năng của các ứng dụng yêu cầu xử lý số lượng lớn dữ liệu

hoặc thời gian thực

-_ Hạn chế trong lĩnh vực nhúng: C# không phải là ngôn ngữ phô biến trong

lĩnh vực nhúng (embedded systems) Việc sử dụng C# tronp các ứng dụng nhúng có

thể gặp hạn chế về tài nguyên hệ thống, khả năng tích hợp với phần cứng và hiệu

năng

~- Sự phụ thuộc vào công nghệ Microsoft: Mặc dù có thể coi là một ưu điểm

trong một số trường hợp, sự phụ thuộc vào công nghệ và công cụ của Microsoft có

thể là một nhược điểm khi muốn phát triên ứng dụng đa nền tảng hoặc không muốn

bị ràng buộc bởi một nhà cung cấp duy nhất

1,1,4 Sự khác biệt giữa C# với các ngôn ngữ lập trình khác

- Lập trình hướng đối tượng: C# được thiết kế chủ yếu để hỗ trợ lập trình

hướng đối tượng (OOP) Nó cung cấp các tính năng như class, object, kế thừa, đa

hình và đóng gói Sự hỗ trợ mạnh mẽ cho OOP giúp xây dựng và quản lý mã dễ

dàng hơn, và cung cấp cấu trúc chặt ché va dé bao tri

Trang 12

-_ Hệ sinh thái NET: C# là một phần của hệ sinh thái NET, bao gồm NET

Framework va NET Core Hé sinh thái này cung cấp một tập hợp rộng rãi các thư

vién va framework dé phat triển ứng dụng Điều này giúp giảm thiểu công sức và

thời gian phát triển, và cung cấp các giải pháp tiện ích cho các tình huống phát triển

khác nhau

-_ Quản lý bộ nhớ tự động: C# sử dụng øarbage collector để quản lý bộ nhớ tự

động Điều này giúp giảm khó khăn và lỗi liên quan đến quản lý bé nhé, vi garbage

collector tự động thu gom các đối tượng không sử dụng và giải phóng bộ nhớ

Trong khi đó, các ngôn ngữ khác như C vả C+ yêu cầu lập trình viên tự động quản

lý bộ nhớ thủ công

- Tính đa nền tảng: Mặc dù C# ban đầu được phát triển cho nền tảng

Windows, nhưng hiện nay nó hỗ trợ đa nền tảng thông qua NET Core Điều này

cho phép phát triển ứng dụng C# trên các hệ điều hành khác nhau như Windows,

macOS và Linux Ngoài ra, C# cũng có thể được sử dụng trong việc phát triển ứng

dụng di động trên 1OS và Android thông qua Xamarin

- Tich hop véi công nghệ Microsoft: C# là ngôn ngữ chính thức của công nghệ

Microsoft và có tích hợp tốt với các công nghệ và địch vụ của Microsoft như Azure,

SQL Server và SharePoint Điều này giúp lập trình viên đễ dàng tích hợp và phát

triển các ứng dụng trên nền tảng của Microsoft

Cú pháp và cầu trúc ngôn ngữ: C# có cú pháp sạch sẽ và đễ đọc, với các quy tắc

cú pháp rõ ràng và nhiều khả năng biểu diễn Nó cũng cung cấp các tính năng tiện

ich nhu thuséc tinh (attributes), sy kién (events) va LINQ (Language Integrated

Query) đề truy vấn đữ liệu

1.2 Tổng quan về Unity

1.2,1 Khái niệm

Unity là một game engine đa nền tảng được phát triển bởi công ty Unity

Technologies, chu yéu duge ding dé phat trién video game cho 21 nén tang bao

gồm may tinh, game consoles (nhu PlayStation) va dién thoai,

1.2.2 Tinh nang co ban cua Unity

- Tao giao dién UI cua Game nhw tao drop bar, textbox,

- Hién thi mô hình 3D, 2D - hệ thống vật ly 2D, 3D

- Networking: H6 tro tạo game chơi nhiều người cùng lúc

-_ Hỗ trợ nền tảng dac biét moi: AR — Augmented reality (Thue té tang cuong),

VR — Virtual reality (Thue té ảo)

- AI—H6 tro con bot trong man hinh game, hé tro package tao nén bot trong

game

Trang 13

-_ Hỗ trợ hiển thị chữ bằng font đặc biệt

Trong tất cả các tính năng của Unity thì cá nhân Huy để cao nhất giao diện

ứng dụng Editor Unity Editor, với nhiều công cụ (tool), hỗ trợ các đầu việc phát

triển same như tạo mô hinh 3D (vat lý, ánh sáng) và viết Script, chi bang thao

tác kéo thả hình ảnh

Nhờ vào tính năng này, Unity hỗ trợ tốt cho cả những vị trí khác trong quá

trình phat trién Game nhu Game Designer

1.2.3 Ưu điểm của Unity

- Editor: Voi Editor, nhà phát triển không cần thiết phải viết Code để sắp đặt

các đối tượng trong Game như những Engine khác mà Developer có thế kéo thả,

thay đổi vị trí của từng đối tượng trong Game trực tiếp trên Editor

- Đa nên tảng là lợi ích thứ 2 rất quan trọng với nhiều công ty cũng như

developer Vì với việc bạn tạo ra Game mà Game đó có thé chạy được trên hầu hết

những hệ điều hành quan trọng như Desktop (Mac, Window và Linux) hay Mobile

(iOS, Android) hoặc Web (WebGL) thì cũng đã tiết kiệm công sức cũng như chí phí

rất nhiều cho doanh nghiệp đó

-_ Miễn phí: Và yếu tố cuối cùng chính là chí phí Với Unity, miễn phí là một

điểm thu hút rất nhiều Developer chọn làm việc với game engine này Tuy nhiên,

với các game được tạo ra miễn phí thì bắt buộc phải có Logo Unity trong Game

1.2.4 Nhược điểm của Unity

- Dung luong Unity game bundle kha Ién: So với những game ensine khác,

Unity sản xuất game có dung lượng nặng nên đây là một điểm trừ lớn Theo Huy,

một øame tốt nhất chỉ nặng dưới 100MB Thậm chí, same web do Unity sản xuất có

thể có dung lượng lên đến cả trăm MB nên web chạy không nôi Chính vi thế, cũng

cùng mét game d6 thi game mobile lại chạy tốt trong khi game web lai giat, lag

-_ Hiệu năng: Unity có thể gặp vẫn đề về hiệu năng trong một số trường hợp

Việc xử lý đồ họa phức tạp, vật lý và AI trong các trò chơi có thể đòi hỏi tài nguyên

hệ thống lớn và gây giảm hiệu năng Việc tối ưu hóa mã và tài nguyên trở nên quan

trọng để đảm bảo trải nghiệm chơi game mượt mà

-_- Kích thước tệp tin: Các ứng dụng được phát triển bằng Unity thường có kích

thước tệp tin lớn Điều này có thể gây khó khăn khi tải xuống và cài đặt trò chơi,

đặc biệt trên các thiết bị di động với không gian lưu trữ hạn chế

- Khả năng quản lý mã lớn: Khi phát triển các dự án lớn và phức tạp, việc

quản lý mã nguồn trong Unity co thé trở nên khó khăn Thiếu một hệ thống quản lý

phiên bản tích hợp có thé lam tăng khó khăn trong việc làm việc nhóm và theo dối

các phiên bản mã nguồn

-_ Hạn chế trong việc phát triển ứng dụng ngoài game: Mặc đù Unity là một

môi trường phát triển trò chơi mạnh mẽ, nhưng nó có hạn chế khi phát triển các ứng

Trang 14

dụng ngoài lĩnh vực trò chơi Việc xây dựng ứng dụng di động không phải trò chơi

có thể gặp khó khăn và có thê yêu cầu kiến thức và công cụ bố sung

- Sự phụ thuộc vào nguồn lực bên thứ ba: Để làm việc hiệu quả với Unity, lập

trình viên thường phải phụ thuộc vào các tải liệu và tài nguyên bên thứ ba, bao gồm

các plugin va asset Điều nảy có thể tạo ra sự phụ thuộc và khó khăn khi quản lý các

tài liệu và cập nhật phiên bản

-_ Khả năng mở rộng: Mặc dù Unity có một cộng đồng đông đảo và nhiều tài

liệu học tập, nhưng việc tìm kiếm các lập trình viên có kỹ năng Unity có thé gap

khó khăn Điều này đặc biệt đúng đối với các dự án phát triển trò chơi lớn và phức

tạp

1.3 Tông quan về kiên trúc phần mềm

1.3.1 Các kiến trúc truyền thống và hiện đại

1.3.1.1 Các kiến trúc truyền thống

- Kién trúc monolithic (đơn khối): Đây là một kiểu kiến trúc cổ điển, trong đó

toàn bộ hệ thống được xây dựng thành một khối lớn duy nhất Ứng dụng này

thường không chia thành các thành phân riêng lẻ, điều nảy có thê dẫn đến sự khó

khăn trong việc bảo trì và mở rộng

-_ Kiến trúc hướng dịch vụ (SOA): Kiến trúc này tách hệ thống thành các dịch

vụ độc lập, mỗi dịch vụ thực hiện một nhiệm vụ cụ thể Các dịch vụ nay g1a0 tiép

thông qua giao thức được chuẩn hóa (thường là REST hoặc SOAP) SOA có thể

giúp tăng tính linh hoạt và tái sử dụng mã nguồn

1.3.1.2 Các kiến trúc hiện đại

- Kiến trúc dựa trên microservices (kiến trúc hướng microservices): Đây là

một mô hình phổ biến trong phát triển phần mềm hiện đại Hệ thông được chia

thành các dịch vụ nhỏ, độc lập, mỗi dịch vụ thực hiện một chức năng cụ thé Cac

dịch vụ này có thể được triển khai, quản lý và mở rộng độc lập nhau, tăng khả năng

mở rộng và linh hoạt

-_ Kiến trúc dựa trên điện toán dam mây (Cloud-native architecture): Kiến trúc

này tối ưu hóa sự linh hoạt, khả năng mở rộng và hiệu suất thông qua việc sử dụng

các dịch vụ đám mây như lưu trữ đâm mây, tính toán đám mây và các dịch vụ khác

Nó thường đi kèm với việc sử dụng các công nghệ như Docker, Kubernetes dé tu

động hóa quản lý và triển khai ứng dụng

-_ Kiến trúc dựa trên sự kiện (Event-driven architecture): Trong kién tric nay,

các thành phần của hệ thống phản ứng và phản hồi với các sự kiện xảy ra trong hệ

thống Các sự kiện này có thể được gửi, nhận và xử ly bất đồng bộ, ø1úp tạo ra các

hệ thống linh hoạt và có khả năng mở rộng tốt Kiến trúc hướng sự kiện giúp tách

Trang 15

biệt logic xử lý sự kiện và giao điện người dùng, tạo ra một hệ thông linh hoạt và dễ

bảo trì

1.3.2 Giới thiệu về kiến trúc mô hình MVC Unity

-_ Mô hình MVC (Model-View-Controller) trong Unity là một kiến trúc phố

biến được sử dụng khi phát triển giao diện người dùng trong ứng dụng phần mềm

1.3.2.1 Tổng quan

- Model: La phan chứa đữ liệu Model không thực hiện logIc trò chơi hoặc tính

toàn

- View: Dinh dang va hiển thị biểu đồ của dữ liệu trên màn hình

- Controller: Xu ly logic nó xử lý dữ liệu trò chơi và tính toán cách giá trị thay

đi trong thời gian chạy Controller không chứa bắt kỳ đữ liệu trò choi nao

1.3.2.2 Ưu điểm

- Tach biét vé logic: MVC tách biệt phần logic của trò chơi thành các thành

phần riêng biệt như dữ liệu (Model), hiển thị (View) và logic điều khiển tương tác

giữa hai phần này (Controller)

- Dé bao tri va mé rong: Tach biét các phần giúp dễ dàng bảo trì mã nguồn và

mở rộng ứng dụng

- Giảm sự phụ thuộc không cần thiết: MVC giúp giảm sự phụ thuộc không cần

thiết piữa các phần của ứng dụng

1.3.2.3 Nhược điểm

-_ Phức tạp: Mô hình MVC có thê phức tạp hơn so với một kiến trúc đơn giản

hơn

-_ Khó khăn trong việc tìm hiểu ban đầu: Đối với những người mới làm quen

với MVC, việc hiểu và triển khai có thê đòi hỏi thời gian học tập

1.3.2.4 Lý do lựa chọn

- Tach biét rd rang: MVC giúp tách biệt rõ ràng iữa các phần của ứng dụng,

giúp đễ dàng quản lý và phát triển mã nguồn

- Tinh mở rộng và bảo trì: Sử dụng MVC cung cấp một nền tảng vững chắc

cho việc phát triển và bảo trì ứng dụng Unity

Trang 16

CHUONG 2: THIET KE KIEN TRUC PHAN MEM

2.1 Mo hinh MVC Unity

2.1.1 Model

- Lép nay dai dién cho dit ligu va logic cua tro choi

- Trong Unity , model thuong duoc trién khai dưới dạng các class hoặc scripts

điều khiến dữ liệu và các hành động của các đối tượng trong trò chơi

- Vi dy, một mô hình có thế là một class để quản lý thông tin về người chơi,

điểm số, cấp độ, vật phẩm, v.V

2.1.2 View

- View 1a phan hiển thị giao diện của trò chơi cho người chơi

- Trong Unity, các view thường được thế hiện thông qua UI (User Interface)

elements nhu cac hộp thoại, nut bam, thanh tién trinh, v.v

- View thường được kết nỗi với mô hình thông qua các trình điều khiển

(Controllers) đề hiển thị dữ liệu từ mô hình và cập nhật nó khi có sự thay đổi

2.1.3 Controller

- Controller 1a thành phan chiu trach nhiém diéu khién luéng logic cua tro choi

dựa trên các tương tác của người chơi

- Trong Unity, các controller thường là các scripts điều khiến các hành động

của người chơi và các sự kiện trong trò chơi

- Controller git vai trò trung gian gitra Model và View, nhận dữ liệu từ Model

và cập nhật View tương ứng

2.1.4 Kết nối

-_ Mỗi thành phần (Model, View, Controller) trong mô hình MVC được thiết

kế đề hoạt động độc lập và tái sử dụng

-_ Kết nối giữa các thành phần thường được thực hiện thông qua các phương

thức giao tiếp hoặc sự kiện

-_ Trong Unity, các kịch bản (scripts) thường được sử dụng để kết nối giữa các

phần tử khác nhau trong mô hình MVC

-_ Triển khai mô hình MVC trong Unity giúp cho việc phát triển trò chơi trở

nên dễ quản lý hơn, code trở nên dễ đọc và bảo trì hơn, và tạo điều kiện thuận lợi

cho việc mở rộng và cải tiến trò chơi trong tương lai

2.2 Phân tích yêu cầu

2.2.1 Yêu cầu chức năng

- Chức năng di chuyên, nhảy

-_ Chức năng cộng điểm, thời gian, xử lí va chạm

- Máu cho player

- Enemy , man choi

- Xử lý hiệu ứng hình ảnh nhân vật , nền , âm thanh

Trang 17

2.2.2 Yêu cầu hệ thống

-_ Chương trình được viết trên Visual Studio 2022 với ngôn ngữ C#

- Phién ban Unity 2022

2.3 Thiết kế hệ thống

- Su dung Tile map dé tao map, giao dién, player va cac vat thé trong game

củng với đó là các sự kiện chức năng ở tựa game vượt chướng noại vật

-_ Chức năng di chuyên sang trái, sang phải, nhảy

- Xu li Text, button, Image, c6 Animation cho nhan vat khi chuyén dong ,

nhảy , bắn chưởng , enemy di chuyén cac chuéng ngai vat nhu dinh gai , lira , dung

nham , ngoai ra con co cac vat pham để hồi máu cho nhân vật

- Có âm thanh nền, âm thanh va chạm, âm thanh khi Win, âm thanh

gameOvcr, thanh máu khi va chạm vật thể có thế gây mất máu cho player, thời gian

đếm ngược mà player phải thu thập đầy đủ đồng xu trước khi thời gian kết thúc để

mở cánh của qua màn pame hoặc khi bị mắt hết máu là sẽ thua

Trang 18

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG

3.1 Giao Diện Game MVC

3.3.1 Giao Diện Menu Game

Hình 3.1 Ảnh giao dién menu game MVC

Trang 19

Trong|trojchounay|nguatchoucanithu thap}10 dong vangidelmorcanhicong

@fhia ae) atin 3 CRin a PER dic CAD motiman khúc

Hình 3.2 Ảnh giao điện menu hướng dẫn game MIUC

3.3.2 Giao Diện Các Màn Chơi

Trang 20

Hình 3.5 Giao dién Game MVC Man 2

Hinh 3.6 Giao dién Game MVC Man 3

3.2 Tổng quan các bước Game MVC

3.2.1 Di chuyển và Animation player

Trang 21

- Đầu tiên trong unity ta cần thêm animation vào cho nhân vật, nhấn vảo

øameobject của nhân vật rồi add các frame hình ảnh chuyển đông chạy , bật nhảy

- Sau d6 sé cai 214 tr bool trong Animator cua game object nhân vật đó , với

di chuyén sé dat 1 kiéu bool réi set trạng thái giữa trạng thái mặc định là đứng im với trạng thái khi di chuyển Còn với trạng thái nhảy sẽ tạo 1 kiểu trigger va | kiéu bool rồi set trạng thái với trạng thái mặc định là đứng im riêng nhảy ta sẽ bỏ lặp

‘loop’ trong setting dé tranh lặp lại việc hiệu ứng bị lặp đi nhiều lần

Hình 3.8 Thiết đặt trang thdi trong animator

- Tiếp theo với phan script 3 Iép ta sé chia 3 file 14 moveController,

moveModel, move View c6 chic nang va vai trò như sau :

using System.Collections;

using System.Collections.Generic;

Trang 22

using UnityEngine;

public class moveModel : MonoBehaviour

{

public static float tocDo = 5.0f;

public static float lucBatNhay = 7.0f;

public bool matDat;

}

- Lớp này chứa dữ liệu và logic của đối tượng di chuyên, bao gồm thông tin

như tôc độ di chuyên (tocDo), lực bật nhảy (lucBatNhay), và trạng thái của đôi

tượng như liệu có đang ở trên mặt đât hay không (matDat)

Dữ liệu trong moveModel có thê được truy cập tir bat ky noi nao trong img

dụng thông qua các biên và phương thức tĩnh

private Animator anim;

private Rigidbody2D body;

// Start is called before the first frame update void Start()

{

anim = GetComponent<Animator>();

body = GetComponent<Rigidbody2D>();

// Di chuyen public void UpdateMovement(float horizontalInput)

{

Trang 23

body.velocity = new Vector2 (horizontallnput * moveModel.tocDo, body.velocity.y);

}

// Nhay public void UpdateJump(bool matdat, float lucBatNhay)

public void UpdateRotation(float horizontalInput)

{

if (horizontallnput > 0.014) transform.localScale = new Vector3(1, 1, 1);

else if (horizontalInput < -0.01f) transform.localScale = new Vector3(-1, 1, 1);

public void UpdateAnimation(float horizontalInput, bool matdat)

{

anim.SetBool("chay", horizontallnput != 0);

anim.SetBool("matdat", matdat);

}

- Lớp này làm nhiệm vụ hiển thị và tương tác với người chơi hoặc môi trường

- Trong trường hợp này, moveView đảm nhiệm việc điều khiển hiến thị vả

animation của đối tượng di chuyền Nó sử dụng Animator để điều khiển animation

va Rigidbody2D để điều khiến vật lý

Trang 24

- Phuong thức UpdateMovement, Update]ump, và UpdateRotation cập nhật vị

trí, nhảy, và hướng của đôi tượng dựa trên đữ liệu từ moveModeal

public static float tocDo;

public static float lucBatNhay;

private bool matDat;

private moveView view;

float horizontalInput = Input.GetAxis("Horizontal");

view UpdateMovement(horizontal Input);

1ƒ (Input.GetKey(KeyCode.Space) && matDat)

{

vIew.Update]ump(matDat, lucBatNhay);

matDat = false;

Trang 25

}

- Lép nay lam nhiệm vụ điều khiến luồng dữ liệu giữa Model và View, cũng

như xử lý sự kiện từ người chơi hoặc môi trường

- Trong trường hợp này, moveController đọc đữ liệu từ Input, sau đó cập nhật

dữ liệu của moveModel (như trạng thái matDat) và gọi các phương thức của

moveView để cập nhật hiển thị

- moveController giữ vai trò trung gian giữa dữ liệu và hiển thị, đảm bảo rằng

logic và dữ liệu không bị trộn lẫn với giao diện người dùng

3.2.2, Xứ lý va chạm cho Player

3.2.2.1 UI Thời gian, điểm số, thất bại, chiến thắng

- Trong unity ta sé tao UI chita 2 gameobject kiéu Text la Score và Time , kiểu

2 gameobject Image la anh That Bai va Chién Thang

Trang 26

- Tiép theo trong phan Script ta co 3 file la uiModel, uiView va

public int score;

public float timeRemaining;

public uiModel (float initial Time)

- Lớp này chứa đữ liệu và logic liên quan đến giao diện người dùng, trong

trường hợp nảy là điểm số (score) và thời gian còn lại (timeRemaining)

- Phuong thirc UpdateTime cap nhật thời ø1an còn lại dựa trên delta time

-_ Phương thức AddScore thêm điểm số mới vào điểm số hiện tại

© uiView (View):

Trang 27

public Text scoreText;

public Text timeText;

public Image gameOverlmage;

public Image gameWinImage;

public void UpdateScore(int newScore)

{

scoreText.text = "Coin : " + newScore.ToString() + "/ 100";

public void UpdateTime(float time)

{

timeText.text = "Time : "+ Mathf.Round(time) ToString();

public void ShowGameOver(bool isGameOver)

Trang 28

Lớp này điều khiến hiển thị của giao diện người dùng, bao gồm điểm số, thời

gian, hình ảnh kết thúc game (Game Over hoặc Game Win)

- Phương thức UpdateScore cập nhật hiển thị điểm số trên giao diện người

dùng

- Phương thức UpdateTime cập nhật hiển thị thời gian con lại trên giao diện

người dùng

- Phương thức ShowGameOver và ShowGameWIn điều khiến việc hiển thị

hình ảnh kết thúc game trên giao diện người dùng

-_ Ta sẽ kéo 4 gameobject vừa tạo ở trong Unity vào 4 biến tương đương trong

code đề hiển thị ra ngoài màn hình

Ngày đăng: 10/02/2025, 15:57

HÌNH ẢNH LIÊN QUAN

Hình  3.1.  Ảnh  giao  dién  menu  game  MVC - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 3.1. Ảnh giao dién menu game MVC (Trang 18)
Hình  3.2.  Ảnh  giao  điện  menu  hướng  dẫn  game  MIUC - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 3.2. Ảnh giao điện menu hướng dẫn game MIUC (Trang 19)
Hình  3.5.  Giao  dién  Game  MVC  Man  2 - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 3.5. Giao dién Game MVC Man 2 (Trang 20)
Hình  3.8.  Thiết  đặt  trang  thdi  trong  animator - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 3.8. Thiết đặt trang thdi trong animator (Trang 21)
Hình  3.9.  Tạo  Ui  thời  gian  và  điểm  số - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 3.9. Tạo Ui thời gian và điểm số (Trang 25)
Hình  4.1.  ((ameObject  chứa  các  file  âm  thanh - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 4.1. ((ameObject chứa các file âm thanh (Trang 38)
Hình  4.3.  Tam  bat  nhay  trong  Unity - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 4.3. Tam bat nhay trong Unity (Trang 48)
Hình  4.4.  Thiết  đặt  mút  tạm  dừng  và  tiếp  tục - Bài tập lớn kiến trúc phần mềm Đề tài  mô hình unity game mvc
nh 4.4. Thiết đặt mút tạm dừng và tiếp tục (Trang 51)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN