Đồ án tốt nghiệp khoa công nghệ thông tin. Có đầy đủ file báo cáo và đường dẫn tới source code full. Tốt cho việc nghiên cứu làm đồ án tốt nghiệp. Có đầy đủ mục lục và hình ảnh demo minh họa. Đây là những source code , mình lấy từ: http:doanit.com
Trang 1MỤC LỤC
CHƯƠNG 1: MỞ ĐẦU Error! Bookmark not defined.
1.1 Giới thiệu chung Error! Bookmark not defined.
1.1.1 Định nghĩa Game Engine Error! Bookmark not defined.
1.1.2 Một số Game Engine phổ biến hiện nay Error! Bookmark not defined.
1.2 Mục tiêu đề tài Error! Bookmark not defined.
1.3 Nội dung luận văn Error! Bookmark not defined.
defined
2.1 Unity là gì? Error! Bookmark not defined.
2.2 Sơ lược lịch sử hình thành và phát triển của UnityError! Bookmark not
defined.
2.2.1 Hình thành Error! Bookmark not defined.
2.2.2 Giải thưởng Error! Bookmark not defined.
2.2.3 Khách hàng Error! Bookmark not defined.
2.3 Tính năng của engine Unity Error! Bookmark not defined.
2.4 Các khái niệm cơ bản trong Unity Error! Bookmark not defined.
2.4.1 Asset Error! Bookmark not defined.
2.4.2 Scene Error! Bookmark not defined.
2.4.3 Game Object Error! Bookmark not defined.
2.4.4 Component Error! Bookmark not defined.
2.4.5 Script Error! Bookmark not defined.
2.4.6 Prefab Error! Bookmark not defined.
Trang 22.5 Sơ nét về giao diện của Unity Error! Bookmark not defined.
2.5.1 Cửa sổ Scene và Hierarchy Error! Bookmark not defined.
2.5.2 Inspector Error! Bookmark not defined.
2.5.3 Cửa sổ Game Error! Bookmark not defined.
2.5.4 Cửa sổ Project Error! Bookmark not defined.
2.6 Tổng quan kiến tr c engine Unit Error! Bookmark not defined.
2.6.1 Kiến trúc tổng quan Error! Bookmark not defined.
2.6.2 Ngôn ngữ lập trình Error! Bookmark not defined.
2.6.3 Chu kỳ sống của thành phần script gắn trên đối tượng game Error!
Bookmark not defined.
2.7 Kết luận Error! Bookmark not defined.
CHƯƠNG 3: M T V N ĐỀ V GI I H HI NG G M
V I NGINE UNITY 2D Error! Bookmark not defined.
3.1 Load texture 2D Error! Bookmark not defined.
3.2 hu ển động nh n vật 2D Error! Bookmark not defined.
3.3 Thêm sự kiện v o chu ển động của nh n vật 2 Error! Bookmark not defined.
3.4 T o đổ bóng cho nhân vật Error! Bookmark not defined.
3.5 T o hiệu ng particle Error! Bookmark not defined.
3.6 dựng giao diện game Error! Bookmark not defined.
3.7 Âm thanh trong game Error! Bookmark not defined.
3.8 Lưu điểm trực tuyến Error! Bookmark not defined.
CHƯƠNG 4: ỨNG DỤNG PHÁT TRIỂN GAME TRÊN UNITY 7
4.1 Tổng quan hệ thống quản lý Game 7
Trang 34.2 Phân tích yêu cầu 7
4.2.1 Minions Shooter 8
4.2.2 Dragon Shooter 8
4.2.3 Tapping Minion 10
4.2.4 Memory Minions 11
4.2.5 Quản lý High Score 12
4.3 Kiến tr c cơ bản trong Game 12
4.3.1 Kiến trúc tổng thể 12
4.3.2 Kiến trúc xử lý phát sinh đối tượng 13
4.3.3 Kiến trúc n p scene 15
4.3.4 Kiến trúc quản lý sự kiện kết th c m n chơi 16
4.3.5 Kiến trúc quản lý AI 17
KẾT LUẬN V HƢ NG PHÁT TRIỂN Error! Bookmark not defined TÀI LIỆU THAM KH O Error! Bookmark not defined.
Trang 4DANH MỤC HÌNH NH
Hình 1: Hình minh họa đa nền tảng Error! Bookmark not defined Hình 2: Asset trong Unity Error! Bookmark not defined Hình 3: Các scene của Unity Error! Bookmark not defined Hình 4: GameObject và thành phần “Transform” Error! Bookmark not defined Hình 5: Các thành phần trong đối tượng Camera Error! Bookmark not defined Hình 6: Cách t o file script mới Error! Bookmark not defined Hình 7: Lập trình Unity bằng C# trên MonoDevelopError! Bookmark not defined.
Hình 8: Một file script đang gắn v o đối tượng Error! Bookmark not defined Hình 9: Thư mục Prefab Error! Bookmark not defined Hình 10: Giao diện Editor của Unity Error! Bookmark not defined Hình 11: Thanh công cụ điều khiển Error! Bookmark not defined Hình 12: Chọn đối tượng trong Scene và HierrarchyError! Bookmark not defined Hình 13: Cửa sổ Inspector hiển thị thông tin một đối tượngError! Bookmark not
defined.
Hình 14: Cửa sổ Game Error! Bookmark not defined Hình 15: Cửa sổ Project Error! Bookmark not defined Hình 16: Chu kỳ sống của thành phần script Error! Bookmark not defined Hình 17: Thiết lập tùy chọn cho Sprite Editor Error! Bookmark not defined Hình 18: Animation Sprite hoàn chỉnh Error! Bookmark not defined Hình 19: Thiết lập điều kiện chuyển đổi tr ng thái (Condition)Error! Bookmark not defined.
Hình 20: Qua ngược object để t o bóng đổ Error! Bookmark not defined.
Trang 5Hình 21: Thông số cho hiệu ng tuyết rơi Error! Bookmark not defined Hình 22: GUI Button Error! Bookmark not defined Hình 23: Áp dụng GUIStyle lên Label Error! Bookmark not defined Hình 24: Button khi rê chuột và không rê chuột Error! Bookmark not defined Hình 25: Vẽ hình ảnh trên GUI Error! Bookmark not defined Hình 26: Thông tin file âm thanh Error! Bookmark not defined Hình 27: Thêm thành phần Audio Source Error! Bookmark not defined Hình 28: Thêm file âm thanh cho thành phần AudioSourceError! Bookmark not
defined.
Hình 29: T o mới cơ sở dữ liệu Error! Bookmark not defined.
Hình 30: Tổng quan hệ thống quản lý Game 7
Hình 31: Minions Shooter 8
Hình 32: Dragon Shooter 9
Hình 33: Tapping Minion 10
Hình 34: Memory Minions 11
Hình 35: Share High Score 12
Hình 36: Sơ đồ khởi t o v phát sinh đối tượng cơ bản 13
Hình 37: Sơ đồ lớp quản lý sự kiện kết th c m n chơi 16
Hình 38: Sơ đồ lớp quản lý AI trong game 17
Trang 7ỨNG ỤNG H T TRIỂN G M TRÊN
UNIT
1.1 Tổng quan hệ thống quản lý Game
Hình 1: Tổng quan hệ thống quản lý Game
1.2 Phân tích yêu cầu
Trang 81.2.1 Minions Shooter
Hình 2: Minions Shooter Yêu cầu trò chơi : Shooter được điều khiển để di chuyển và bắn các mục tiêu di
động - các minions mục tiêu xuất hiện trong khoảng thời gian nhất định và bay lên
t i những vị trí ngẫu nhiên Người chơi có sự lựa chọn giữa các lo i súng phù hợp
để đ t số điểm cao nhất
Độ khó của game sẽ tăng dần khi người chơi đ t được số điểm nhất định
1.2.2 Dragon Shooter
Trang 9Hình 3: Dragon Shooter
Yêu cầu trò chơi : Người chơi thực hiện tương tự việc điều khiển Shooter để
bắn mục tiêu di động, t i phần chơi n , người chơi v mục tiêu có một thanh HP cố định Người chơi cố gắng tiêu diệt mục tiêu trước khi thanh HP trở về 0
Không có sự lựa chọn tha đổi súng t i phần chơi n
Trang 101.2.3 Tapping Minion
Hình 4: Tapping Minion Yêu cầu trò chơi : Người chơi thực hiện nhấp chuột hoặc Space bar để điều
khiển nhân vật vượt qua các chướng ng i vật, cố gắng để đ t số điểm cao nhất
Trang 111.2.4 Memory Minions
Hình 5: Memory Minions Yêu cầu trò chơi : Thuộc thể lo i game luyện tập trí nhớ, người chơi thực hiện
việc lật từng tấm bài sao cho hình họa của chúng trùng nhau trong khoảng thời gian nhất định
Trang 121.2.5 Quản lý High Score
Hình 6: Share High Score
Người chơi có thể thực hiện
Xem High Score
Share High Score
Xem top 5 High Score
Hosting v cơ sở dữ liệu được demo bằng localhost & hệ quản trị MySQL
1.3 Kiến trúc cơ bản trong Game
1.3.1 Kiến trúc tổng thể
o Entity : gồm các ch c năng nhằm phục vụ việc t o lập các đối tượng trong game
ác đối tượng trong game l các minions, shooter, vũ khí, vật cản …
o Scene Loader: Bao gồm các điều kiện chuyển scene, lựa chọn scene, load scene
trong game
o Scene Ending: Bảo đảm game có thể dễ d ng tha đổi, bổ sung các điều kiện
kết th c m n chơi
Trang 13o Computer AI: Bảo đảm game có thể đễ d ng tha đổi, chỉnh sửa AI
1.3.2 Kiến trúc xử lý phát sinh đối tượng
Trong game, thường tất cả các đối tượng cơ bản đều được load 1 lần duy nhất lúc khởi t o game ác đối tượng prefabs được khởi t o ingame và gọi trong quá
trình Update()
Việc tha đổi ho t họa của một đối tượng trong game có thể được tha đổi dễ dàng phụ thuộc v o điều kiện m n chơi, tr ng thái nhân vật
Hình 7: ơ đồ khởi tạo và phát sinh đối tƣợng cơ bản
Trang 14Khởi t o đối tượng được thực hiện bởi:
hương thức Instantiate
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original);
Tham số
original Đối tượng cần khởi t o
position Vị trí khởi t o đối tượng
rotation Định hướng góc quay của đối tượng khởi t o
Mô tả
Khởi tạo một bản sao của đối tượng
Ch c năng n t o ra một bản sao của một đối tượng tương tự như lệnh Duplicate trong trình so n thảo Ta có thể tùy chọn chỉ định vị trí và xoay của đối tượng khởi t o Nếu ta khởi t o một thành phần m trên đó một đối tượng được gắn
v o thì đối tượng đó cũng sẽ được khởi t o
Khi ta sao chép một đối tượng hoặc thành phần, tất cả các đối tượng và các thành phần mới khởi t o cũng sẽ được nhân bản với những đặc điểm của các đối tượng ban đầu Ngoài ra, tình tr ng ho t động của một đối tượng t i thời điểm khởi
t o sẽ được thông qua, vì vậy nếu ban đầu đối tượng không ho t động thì clone sẽ được t o ra trong tr ng thái không ho t động
Trang 151.3.3 Kiến trúc nạp scene
Một scene bao gồm các thông tin cơ bản như
Index
Tên scene (Application.LoadedLevel)
Trong nội dung ph m vi đề tài, kiến trúc n p scene được mô tả đơn giản như việc load scene từ game menu, restart game, chọn game …
Load scene thực hiện bởi:
hương thức LoadLevel
public static void LoadLevel(int index);
public static void LoadLevel(string name);
Tham số
index Index của scene cần load
name Tên của scene cần load
Mô tả
N p scene theo tên hoặc chỉ số
Trước khi b n có thể load một scene b n phải thêm nó vào danh sách của các scene được sử dụng trong trò chơi Sử dụng File-> Xây dựng Settings trong Unity
và thêm các scenes b n cần vào danh sách
Khi load một scene tất cả các đối tượng game đã được n p trước đó sẽ bị hủy Nếu b n muốn cho một đối tượng tồn t i khi load scene mới, sử dụng
Object.DontDestroyOnLoad
Trang 161.3.4 Kiến trúc quản lý sự kiện kết thúc màn chơi
Mỗi game đều có một phương th c quản lý kết th c m n chơi hoặc thuộc tính
tĩnh được khai báo l m điều kiện kết thúc
Hình 8: ơ đồ lớp quản lý sự kiện kết thúc màn chơi
Trang 171.3.5 Kiến trúc quản lý AI
Trong game, AI quản lý nhiều h nh động qu định bởi phương th c gắn liền với đối tượng AI, các h nh động như di chu ển ngẫu nhiên, tránh đ n, bắn trả sẽ được quản lý tập trung nội trong script của đối tượng
Hình 9: ơ đồ lớp quản lý AI trong game
Hàm RandomMove
void RandomMove() {
i += 1;
if (i % 50 == 0) {
i=0;
randx = Random.Range (-0.01f, 0.01f);
randy = Random.Range (-0.01f, 0.01f);
}
}
Trang 18Thực hiện việc dịch chuyển đối tượng không định hướng một cách ngẫu nhiên Xác suất dịch chuyển trong 1 gi được tính theo công th c sau :
P = 1 - ) 60 = ~ 0.7
Chú thích : 60 là FPS (Frame Per Second) mặc định của Unity
Hàm AvoidBullet
Sử dụng vòng lặp để duyệt tất cả những vị trí m "Đ n" bay qua :
foreach (GameObject bullet in bullets) {
để chọn ra tất cả những vị trí "an to n" sau đó thực hiện việc dịch chuyển đối tượng đến vị trí "an toàn" :
dragon.transform.position = new
Vector3(dragon.transform.position.x,dragon.transform.position.y+(safePos-dragon.transform.position.y)/10,dragon.transform.position.z);
Hàm Attack
Khởi t o đối tượng “Đ n” dịch chuyển có định hướng về vị trí của đối tượng
“Pla er”
Instantiate (fireball, new Vector3 (transform.position.x + 1.0f,
transform.position.y + 0.25f, transform.position.z),
Quaternion.identity);
Đ chỉ là mục lục và demo hình ảnh của đồ án, nếu
b n cần file báo cáo full và source code hãy liên hệ qua
mail doanit.com@gmail.com