Tải bản đầy đủ (.pdf) (18 trang)

TÌM HIỂU ENGINE UNITY 2d, xây DỰNG DEMO “MINIONS” GAMES

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.16 MB, 18 trang )



MC LC
 U Error! Bookmark not defined.
1.1. Gii thiu chung Error! Bookmark not defined.
1.1.1.  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 tài Error! Bookmark not defined.
1.3. Ni dung lu Error! Bookmark not defined.
NG QUAN V ENGINE UNITYError! Bookmark not
defined.
2.1. Unity là gì? Error! Bookmark not defined.
2.2. 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ng Error! Bookmark not defined.
2.2.3. Khách hàng Error! Bookmark not defined.
2.3. a engine Unity Error! Bookmark not defined.
2.4. Các khái ni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.


2.5.  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.  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ng game Error!
Bookmark not defined.
2.7. Kt lun Error! Bookmark not defined.

INE UNITY 2D Error! Bookmark not defined.
3.1. Load texture 2D Error! Bookmark not defined.
3.2. t 2D Error! Bookmark not defined.
3.3. Thêm s kiError! Bookmark not
defined.
3.4.  bóng cho nhân vt Error! Bookmark not defined.
3.5.  Error! Bookmark not defined.
3.6.  Error! Bookmark not defined.
3.7. Âm thanh trong game Error! Bookmark not defined.
3.8. m trc tuyn Error! Bookmark not defined.
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


4.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 trong Game 12
4.3.1. Kin trúc tng th 12

4.3.2. Kin trúc x 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 16
4.3.5. Kin trúc qun lý AI 17
KT LUNG PHÁT TRIN Error! Bookmark not defined.
TÀI LIU THAM KHO Error! Bookmark not defined.



DANH MC HÌNH NH
Hình 1: Hình minh h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 Error! Bookmark not defined.
Hình 5: Các thành ph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ng Error! Bookmark not defined.
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 u khin Error! Bookmark not defined.
Hình 12: Chng trong Scene và HierrarchyError! Bookmark not defined.
Hình 13: Ca s Inspector hin th thông tin m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u kin chuyi trng thái (Condition)Error! Bookmark
not defined.
 t Error! Bookmark not defined.


Hình 21: Thông s cho hiu ng tuy 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 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
 khi ti n 13
 lp qun lý s kin k 16
 lp qun lý AI trong game 17










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



1.2.1. Minions Shooter


Hình 2: Minions Shooter
Yêu c u khi 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nh và bay lên
ti nhng v trí ng la chn gia các loi súng phù hp
 t s m cao nht.
 khó ca game s c s m nhnh.



1.2.2. Dragon Shooter





Hình 3: Dragon Shooter

Yêu c c hi viu khi
bn mng, ti phc tiêu có mt thanh HP c
 gng tiêu dit mc khi thanh HP tr v 0.
Không có s la chi súng ti ph




1.2.3. Tapping Minion


Hình 4: Tapping Minion
Yêu c    c hin nhp chut ho u
khin nhân vng ngi vt, c g t s m cao nht.









1.2.4. Memory Minions


Hình 5: Memory Minions
Yêu c Thuc th loi game luyn tp trí nh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nh.


1.2.5. Quản lý High Score

Hình 6: Share High Score
 thc hin
 Xem High Score
 Share High Score
 Xem top 5 High Score
 d lic demo bng localhost & h qun tr MySQL
1.3. Kin trong Game
1.3.1. Kiến trúc tổng thể
o Entity : gm các chm phc v vic to lng trong game.
i t c
o Scene Loader: Bao gu kin chuyn scene, la chn scene, load scene
trong game
o Scene Ending: Bm game có th d i, b u kin
k


o Computer AI: Bm game có th  i, chnh sa AI

1.3.2. Kiến trúc xử lý phát sinh đối tượng
ng tt c c load 1 ln duy nht
lúc khi tc khi to ingame và gi trong quá
trình Update() .
Vii hot ha ca mng trong game có th i d
dàng ph thuu king thái nhân vt.




Hình 7 khi tn




Khi tc thc hin bi:

 c Instantiate

public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original);

 Tham s
original
ng cn khi to
position
V trí khi tng
rotation
ng góc quay cng khi to

 Mô t

Khởi tạo một bản sao của đối tượng
Ch   o ra mt bn sao ca m      nh
Duplicate trong trình son tho. Ta có th tùy chn ch nh v trí và xoay ci
ng khi to. Nu ta khi to mt thành phc gn
 c khi to.

Khi ta sao chép m  ng hoc thành phn, tt c   ng và các
thành phn mi khi t c nhân bn vi nhm ci
u. Ngoài ra, tình trng hong ca mng ti thm khi
to s c thông qua, vì vy nng không hong thì clone s
c to ra trong trng thái không hong .


1.3.3. Kiến trúc nạp scene
Mt scene bao g
 Index
 Tên scene (Application.LoadedLevel)
Trong ni dung ph tài, kin trúc nc mô t 
vic load scene t game menu, restart game, ch
Load scene thc hin bi:

 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.
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
c s d 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 n b hy.
Nu bn mun cho mng tn ti khi load scene mi, s dng
Object.DontDestroyOnLoad.


1.3.4. Kiến trúc quản lý sự kiện kết thúc màn chơi
Mu có mc qun lý kc thuc tính
c khai báo u kin kt thúc



Hình 8 lp qun lý s kin k


1.3.5. Kiến trúc quản lý AI
Trong game, AI qun lý nhinh bc gn lin vi
n ngu nhiênn, bn tr s c
qun lý tp trung ni trong script c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);

}
. . .
}



Thc hin vic dch chuyng mt cách ngu nhiên
Xác sut dch chuy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 duyt tt c nhng v n" bay qua :
foreach (GameObject bullet in bullets) { . . .
 chn ra tt c nhng v c hin vic dch chuy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ch chuyng v v trí ca ng


Instantiate (fireball, new Vector3 (transform.position.x + 1.0f,
transform.position.y + 0.25f, transform.position.z),
Quaternion.identity);


 là mc lc và demo hình nh c án, nu
bn cn file báo cáo full và source code hãy liên h qua
mail

×