SlideShare a Scribd company logo
1 of 43
Tìm hiểu lập trình Unity:
Xây dựng game plane
shooting(bắn máy bay 2D)
GIỚI THIỆU
VỀ UNITY
PHÂN TÍCH VÀ
XÂY DỰNG
GAME
KẾT LUẬN
NỘI DUNG
01 02 03
GIỚI THIỆU VỀ
UNITY
01
- Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà
chủ yếu để phát triển video game cho máy tính, consoles và điện thoại.
- Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's Worldwide
Developers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng.
1.1 Unity là gì?
• Chức năng cốt lõi đa dạng bao gồm: cung cấp công cụ dựng hình (kết xuất đồ họa)
cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện va chạm), âm
thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dòng dữ liệu xử lý,
quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng. Nhờ có các engine mà công việc
làm game trở nên ít tốn kém và đơn giản hơn.
• Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả năng hỗ trợ
gần như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox 360, Wii U, iOS,
Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và cả Flash.
1.2 Ưu điểm của Unity
• Dễ sử dụng: Unity3D được built trong một môi trường phát triển tích hợp, cung cấp
một hệ thống toàn diện cho các lập trình viên, từ soạn thảo mã nguồn, xây dựng công
cụ tự động hóa đến trình sửa lỗi.
• Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine Unity3D
cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000 USD/năm.
Với bản Pro, người dùng phải trả 1.500 USD/năm – một con số rất khiêm tốn so với
những gì engine này mang lại.
1.2 Ưu điểm của Unity
- GameObject
Một đối tượng cụ thể trong game gọi là một object, có thể là đồ vật, nhân vật nào đó.
- Component
Một GameObject sẽ có nhiều thành phần cấu tạo như là hình ảnh, tập hợp các hành động,
tính toán vật lý, thành phần xử lý va chạm, mã điều khiển, các thành phần khác… mỗi thứ như vậy gọi
là một component của GameObject.
- Sprite
Là một hình ảnh 2D của một GameObject có thể là hình ảnh đầy đủ, hoặc là một bộ phần
nào đó.
- Animation
Là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều Sprite khác nhau.
1.3 Các đối tượng cơ bản trong Unity
- Key Frame
Hay Frame là một trạng thái của một animation. Có thể được tạo nên từ 1 sprite hay nhiều
sprite khác nhau
- Prefabs
Dùng để sử dụng lại các đối tượng giống nhau có trong game mà chỉ cần khởi tạo lại các
giá trị vị trí, tỉ lệ biến dạng và góc quay từ một đối tượng ban đầu.
- Sounds
Âm thanh trong game.
- Script
Là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các đối tượng trong game.
1.3 Các đối tượng cơ bản trong Unity
- Scenes
Quản lý tất cả các đối tượng trong một màn chơi của game
- Assets
Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation, sound, script,
scenes…
- Camera
Là một game object đặc biệt trong scene, dùng để xác định tầm nhìn, quan sát các đối
tượng khác trong game.
- Transform
Là 3 phép biến đổi tịnh tiến, quay theo các trục và phóng to thu nhỏ đối tượng.
1.3 Các đối tượng cơ bản trong Unity
1.4 Giao diện của Unity
Cửa sổ Scene
Cửa sổ scene là nơi mà chúng ta sẽ xây dựng các thực thể, đối
tượng của dự án vào đó. Cửa sổ cung cấp góc nhìn phối cảnh
(góc nhìn 3D). Cửa sổ này sẽ kết hình xuất đầy đủ những hình
ảnh trong thế giới của trò chơi mà chúng ta tạo ra dưới dạng một
vùng biên tập mà chúng ta có thể biên tập, chỉnh sửa trực tiếp
thế giới đó.
1.4 Giao diện của Unity
Hierarchy
Khi kéo thả Assest vào cửa sổ Scene, Assets sẽ trở thành Game
Object. Cửa sổ Scene được ràng buộc cùng với cửa sổ
Hierarchy, cửa sổ Hierarchy liệt kệ danh sách các Game Object
có trong Scene
1.4 Giao diện của Unity
Cửa sổ Inspector
Cửa sổ Inspector có thể được xem như một công cụ cho phép
chúng ta tùy chỉnh các thiết đặt, các thành phần của Game
Object hoặc Assets đang được chọn.
Cửa sổ này sẽ hiển thị đầy đủ các Components của đối tượng
mà chúng ta chọn. Nó cho phép chúng ta điều chỉnh các biến
của Components dưới các hình thức như: Textbox, Slider,
Button, Drop-dowm Menu…
1.4 Giao diện của Unity
Cửa sổ Project
Cửa sổ Project là cửa sổ cho phép chúng ta nhìn thấy trực
tiếp nội dung của thư mục Assets của dự án. Mỗi dự án Unity
đều được chứa trong một thư mục cha. Trong đó có 3 thư
mục con là Assets, Library và Temp (chỉ có khi Unity đang
chạy). Đặt tất cả các Assets vào thư mục Assets có nghĩa là
ngay lập tức chúng ta sẽ thấy chúng xuất hiện trong cửa sổ
Project.
1.4 Giao diện của Unity
Cửa sổ Game
Cửa sổ Game sẽ được gọi khi chúng ta nhấn vào nút Play (là
một hành động thực hiện test trò chơi). Cửa sổ này cho phép
chúng ta tùy chọn về thiết đặt tỉ lệ màn hình, nó phản ánh phạm
vi trong Scene mà người chơi có thể thấy được với mỗi tỉ lệ màn
hình tương ứng, ví dụ như với mỗi tỉ lệ màn hình 4:3, 16:9 thì
người chơi sẽ có một phạm vi nhìn thấy khác nhau.
1.4 Giao diện của Unity
THIẾT KẾ VÀ XÂY
DỰNG GAME
02
2.1 Biểu đồ Use-case của Game
Cách di chuyển và cách chơi:
*Cách di chuyển:
Người chơi sẽ sử dụng thao tác nhấn giữ và vuốt điều hướng máy bay.
*Cách chơi:
Người chơi lúc đầu sẽ có 100% máu. Khi bị Enemy nhỏ đâm vào hoặc
đạn của Enemy to bắn trúng, người chơi sẽ bị mất 1 lượng máu nhất
định, khi hết máu => Thua. Người chơi sẽ cố gắng né Enemy nhỏ, né
đạn, cố gắng tiêu diệt hết số Enemy và thu thập Vàng. Wave cuối sẽ có
Boss, tiêu diệt Boss để hoàn thành màn chơi. Sau khi Lose hoặc Win,
sẽ có UI hiện ra 2 tùy chọn: Chơi lại hoặc thoát ra Main Menu
2.2 Gameplay
Các loại Enemy thường
2.2 Gameplay
STT Tên Enemy Ảnh
1 Enemy
2 Enemy2
3 Medium Enemy
4 mEnemy3
2.3 Ứng dụng và các thư viện sử dụng
Rider Unity
DOTweenPro
Player
- Tạo Project Unity Game 2D
- Tạo các GameObject cho Player
2.4 Thực hiện
Player
- Tạo hiệu ứng đuôi máy bay bằng
Particle
- Sử dụng EnergyParticle đã được
tạo trong Prefab
- Sau đó thêm Script điều khiển cho
máy bay
2.4 Thực hiện
Bullet
- Tạo Prefab Bullet
- Thêm các Component và Script xử lý đạn
- Bước tiếp theo cần tạo ra các viên đạn tại
các vị trí bắn của máy bay
- Để tránh tối đa việc Destroy/Instantiate
object gây nặng cho hệ thống ta sẽ sử dụng
Object Pooling để xử lý
2.4 Thực hiện
Bullet
- Tiếp theo ta sẽ tạo những vị trí đạn bắn ra
từ máy bay, tạm thời ta sẽ tạo 4 vị trí
(FirePoints)
- Tạo script bắn đạn
2.4 Thực hiện
Boundary
- Hiện tại những object Bullet đang được
khởi tạo liên tục nên ta sẽ tạo Collider phía
trên để khi đạn va chạm ta sẽ Deactive đi.
2.4 Thực hiện
Background
- Ta sẽ sử dụng 2 back ground di chuyển
xuống và viết Script Loop BackGround
2.4 Thực hiện
Level Manager
- Viết Script tạo LevelTable
- Viết Script để load LevelTable và tạo
Level
- LevelTable sau khi được tạo sẽ nằm trong
Assets/Resources
- Sử dụng Bảng này để tạo ra các Wave
2.4 Thực hiện
Enemy
- Enemy nhỏ, không có chức năng bắn đạn
- Di chuyển theo Path, khi đâm vào Player
sẽ gây sát thương và phát nổ
2.4 Thực hiện
Enemy 2
- Enemy nhỏ, không có chức năng bắn đạn
- Di chuyển theo Path, khi đâm vào Player
sẽ gây sát thương và phát nổ
2.4 Thực hiện
Medium Enemy
- Sau mỗi khoảng thời gian 1s, enemy sẽ
xoay theo hướng vị trí của Player. Góc
xoay trong khoảng (-20, 20).
- Mỗi 2s sẽ bắn đạn
- Mỗi lần bắn đạn sẽ chia làm 2 turn cách
nhau 1s
2.4 Thực hiện
mEnemy3
- Di chuyển theo Path
- Mỗi 2s sẽ bắn 4 viên đạn
- Sau mỗi 3s, enemy sẽ bắn 1 tên lửa, tên
lửa bay lên trên trong 0.3s thì sẽ bay đuổi
theo vị trí player
- Tên lửa chỉ đuổi theo player trong 3s rồi
bay thẳng theo hướng hiện tại
2.4 Thực hiện
Boss
- Boss có 2 state
- Có 4 loại súng:
+WingGun
+Minigun
+WaveGun –riêng WaveGun có 2 state
+HandGun(FireGun)
2.4 Thực hiện
Boss State 1
- Wing gun
- Có 2 State đạn:
2.4 Thực hiện
Wing1:
Speed
MinSpeed
DeltaSpeed // tốc độ bị giảm sau mỗi frame
CurrentSpeed
Bullet di chuyển chậm dần tới khi MinSpeed thì sẽ nổ ra 4 viên đạn nhỏ
Wing2:
MiniBullet sẽ bay theo 4 hướng cách nhau 90° và xoay
tròn khi bay.
Boss State 1
- Minigun
2.4 Thực hiện
- BulletMiniGun:
Mô tả: Mỗi viên đạn sẽ bay theo 2 quỹ đạo:
+ Đạn bay ra từ súng với khoảng cách ngẫu nhiên (1f, 2f)
+ Sau đó bay theo hướng vị trí Player.
+Sau 1s không đuổi nữa, bay thẳng hướng hiện tại
Boss State 1
- WaveGun State 1
- + WaveGun sẽ xoay theo vị trí của Player
- +Limit góc quay (-60,-10) và (10,60)
- + Lúc bắn đạn thì tạm ngưng, bắn xong thì xoay tiếp
2.4 Thực hiện
- BulletWaveGun:
- Đạn bay ra và Scale lớn hơn
Boss State 2
- Khi 2 WingGun bị tiêu diệt thì Boss
chuyển sang State 2, trong thời gian
chuyển trạng thái thì Active Shield chắn
cho Boss, Active Health Bar cho
WaveGun và HandGun
- - Shield:
2.4 Thực hiện
Boss State 2
- WaveGun State 2
2.4 Thực hiện
- BulletWaveGun2:
- Đạn bay ra từ vị trí 1 và 2, sau 0.5s thì đuổi theo vị trí Player
- Đạn đuổi theo Player trong 2.5s rồi bay thẳng theo hướng hiện tại
Boss State 2
- HandGun(FireGun)
2.4 Thực hiện
- BulletWaveGun2:
- Sử dụng ParticleSystem
Boss State 2
- Khi tất cả mọi súng của
Boss bị phá thì hiện thanh
healthbar của boss
- BOSS DEMO
2.4 Thực hiện
UI
2.4 Thực hiện
Hướng dẫn Màn hình chơi
Menu
UI
2.4 Thực hiện
Lose Win
Pause
KẾT LUẬN
03
- Tối ưu hóa game mượt hơn nữa
- Tăng thêm Wave
- Thêm vũ khí, đạn dược, nâng cấp máy bay và vũ khí
- Thêm hiệu ứng âm thanh
- Cung cấp thêm công cụ để người chơi chọn và chỉnh sửa tạo riêng cho mình những nhân vật,
skin…
3.1 Hướng phát triển

More Related Content

Similar to BanMayBay.pptx

Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...
Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...
Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...Hoangminh Nguyen
 
Dota2- MPR Corporation
Dota2- MPR CorporationDota2- MPR Corporation
Dota2- MPR CorporationChun Psd
 
Tìm hiểu về microsoft expression encoder 4
Tìm hiểu về microsoft expression encoder 4Tìm hiểu về microsoft expression encoder 4
Tìm hiểu về microsoft expression encoder 4Đăng Khôi
 
Cac phan mem hay moi nhat
Cac phan mem hay moi nhatCac phan mem hay moi nhat
Cac phan mem hay moi nhatDung dau bac
 
Chuong vb.net
Chuong vb.netChuong vb.net
Chuong vb.netkienbom
 
Android chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulatorAndroid chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulatorJustin Hoang
 
Pttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien donePttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien doneNguyen Tran
 
Biginginventor2008 120719205845-phpapp01
Biginginventor2008 120719205845-phpapp01Biginginventor2008 120719205845-phpapp01
Biginginventor2008 120719205845-phpapp01Hội Trần
 
Huong dan su dung dau ghi hinh avtech
Huong dan su dung dau ghi hinh avtechHuong dan su dung dau ghi hinh avtech
Huong dan su dung dau ghi hinh avtechhuongdiu88
 
Một số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameMột số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameJohnny Chen
 
Motsogamehayganday
MotsogamehaygandayMotsogamehayganday
MotsogamehaygandayAIT-JSC
 
hướng dẫn sử dụng phần mềm mô phỏng sscnc
hướng dẫn sử dụng phần mềm mô phỏng sscnchướng dẫn sử dụng phần mềm mô phỏng sscnc
hướng dẫn sử dụng phần mềm mô phỏng sscncCadcamcnc Học
 
Hướng dẫn sử dụng đầu ghi hình avtech
Hướng dẫn sử dụng đầu ghi hình avtechHướng dẫn sử dụng đầu ghi hình avtech
Hướng dẫn sử dụng đầu ghi hình avtechHà Dịu
 

Similar to BanMayBay.pptx (13)

Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...
Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...
Nghiên cứu công nghệ Unity và xây dựng ứng dụng game 3D trên Mobile - My Proj...
 
Dota2- MPR Corporation
Dota2- MPR CorporationDota2- MPR Corporation
Dota2- MPR Corporation
 
Tìm hiểu về microsoft expression encoder 4
Tìm hiểu về microsoft expression encoder 4Tìm hiểu về microsoft expression encoder 4
Tìm hiểu về microsoft expression encoder 4
 
Cac phan mem hay moi nhat
Cac phan mem hay moi nhatCac phan mem hay moi nhat
Cac phan mem hay moi nhat
 
Chuong vb.net
Chuong vb.netChuong vb.net
Chuong vb.net
 
Android chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulatorAndroid chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulator
 
Pttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien donePttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien done
 
Biginginventor2008 120719205845-phpapp01
Biginginventor2008 120719205845-phpapp01Biginginventor2008 120719205845-phpapp01
Biginginventor2008 120719205845-phpapp01
 
Huong dan su dung dau ghi hinh avtech
Huong dan su dung dau ghi hinh avtechHuong dan su dung dau ghi hinh avtech
Huong dan su dung dau ghi hinh avtech
 
Một số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameMột số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết game
 
Motsogamehayganday
MotsogamehaygandayMotsogamehayganday
Motsogamehayganday
 
hướng dẫn sử dụng phần mềm mô phỏng sscnc
hướng dẫn sử dụng phần mềm mô phỏng sscnchướng dẫn sử dụng phần mềm mô phỏng sscnc
hướng dẫn sử dụng phần mềm mô phỏng sscnc
 
Hướng dẫn sử dụng đầu ghi hình avtech
Hướng dẫn sử dụng đầu ghi hình avtechHướng dẫn sử dụng đầu ghi hình avtech
Hướng dẫn sử dụng đầu ghi hình avtech
 

BanMayBay.pptx

  • 1. Tìm hiểu lập trình Unity: Xây dựng game plane shooting(bắn máy bay 2D)
  • 2. GIỚI THIỆU VỀ UNITY PHÂN TÍCH VÀ XÂY DỰNG GAME KẾT LUẬN NỘI DUNG 01 02 03
  • 4. - Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại. - Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's Worldwide Developers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng. 1.1 Unity là gì?
  • 5. • Chức năng cốt lõi đa dạng bao gồm: cung cấp công cụ dựng hình (kết xuất đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng. Nhờ có các engine mà công việc làm game trở nên ít tốn kém và đơn giản hơn. • Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả năng hỗ trợ gần như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và cả Flash. 1.2 Ưu điểm của Unity
  • 6. • Dễ sử dụng: Unity3D được built trong một môi trường phát triển tích hợp, cung cấp một hệ thống toàn diện cho các lập trình viên, từ soạn thảo mã nguồn, xây dựng công cụ tự động hóa đến trình sửa lỗi. • Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine Unity3D cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000 USD/năm. Với bản Pro, người dùng phải trả 1.500 USD/năm – một con số rất khiêm tốn so với những gì engine này mang lại. 1.2 Ưu điểm của Unity
  • 7. - GameObject Một đối tượng cụ thể trong game gọi là một object, có thể là đồ vật, nhân vật nào đó. - Component Một GameObject sẽ có nhiều thành phần cấu tạo như là hình ảnh, tập hợp các hành động, tính toán vật lý, thành phần xử lý va chạm, mã điều khiển, các thành phần khác… mỗi thứ như vậy gọi là một component của GameObject. - Sprite Là một hình ảnh 2D của một GameObject có thể là hình ảnh đầy đủ, hoặc là một bộ phần nào đó. - Animation Là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều Sprite khác nhau. 1.3 Các đối tượng cơ bản trong Unity
  • 8. - Key Frame Hay Frame là một trạng thái của một animation. Có thể được tạo nên từ 1 sprite hay nhiều sprite khác nhau - Prefabs Dùng để sử dụng lại các đối tượng giống nhau có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và góc quay từ một đối tượng ban đầu. - Sounds Âm thanh trong game. - Script Là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các đối tượng trong game. 1.3 Các đối tượng cơ bản trong Unity
  • 9. - Scenes Quản lý tất cả các đối tượng trong một màn chơi của game - Assets Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation, sound, script, scenes… - Camera Là một game object đặc biệt trong scene, dùng để xác định tầm nhìn, quan sát các đối tượng khác trong game. - Transform Là 3 phép biến đổi tịnh tiến, quay theo các trục và phóng to thu nhỏ đối tượng. 1.3 Các đối tượng cơ bản trong Unity
  • 10. 1.4 Giao diện của Unity
  • 11. Cửa sổ Scene Cửa sổ scene là nơi mà chúng ta sẽ xây dựng các thực thể, đối tượng của dự án vào đó. Cửa sổ cung cấp góc nhìn phối cảnh (góc nhìn 3D). Cửa sổ này sẽ kết hình xuất đầy đủ những hình ảnh trong thế giới của trò chơi mà chúng ta tạo ra dưới dạng một vùng biên tập mà chúng ta có thể biên tập, chỉnh sửa trực tiếp thế giới đó. 1.4 Giao diện của Unity
  • 12. Hierarchy Khi kéo thả Assest vào cửa sổ Scene, Assets sẽ trở thành Game Object. Cửa sổ Scene được ràng buộc cùng với cửa sổ Hierarchy, cửa sổ Hierarchy liệt kệ danh sách các Game Object có trong Scene 1.4 Giao diện của Unity
  • 13. Cửa sổ Inspector Cửa sổ Inspector có thể được xem như một công cụ cho phép chúng ta tùy chỉnh các thiết đặt, các thành phần của Game Object hoặc Assets đang được chọn. Cửa sổ này sẽ hiển thị đầy đủ các Components của đối tượng mà chúng ta chọn. Nó cho phép chúng ta điều chỉnh các biến của Components dưới các hình thức như: Textbox, Slider, Button, Drop-dowm Menu… 1.4 Giao diện của Unity
  • 14. Cửa sổ Project Cửa sổ Project là cửa sổ cho phép chúng ta nhìn thấy trực tiếp nội dung của thư mục Assets của dự án. Mỗi dự án Unity đều được chứa trong một thư mục cha. Trong đó có 3 thư mục con là Assets, Library và Temp (chỉ có khi Unity đang chạy). Đặt tất cả các Assets vào thư mục Assets có nghĩa là ngay lập tức chúng ta sẽ thấy chúng xuất hiện trong cửa sổ Project. 1.4 Giao diện của Unity
  • 15. Cửa sổ Game Cửa sổ Game sẽ được gọi khi chúng ta nhấn vào nút Play (là một hành động thực hiện test trò chơi). Cửa sổ này cho phép chúng ta tùy chọn về thiết đặt tỉ lệ màn hình, nó phản ánh phạm vi trong Scene mà người chơi có thể thấy được với mỗi tỉ lệ màn hình tương ứng, ví dụ như với mỗi tỉ lệ màn hình 4:3, 16:9 thì người chơi sẽ có một phạm vi nhìn thấy khác nhau. 1.4 Giao diện của Unity
  • 16. THIẾT KẾ VÀ XÂY DỰNG GAME 02
  • 17. 2.1 Biểu đồ Use-case của Game
  • 18. Cách di chuyển và cách chơi: *Cách di chuyển: Người chơi sẽ sử dụng thao tác nhấn giữ và vuốt điều hướng máy bay. *Cách chơi: Người chơi lúc đầu sẽ có 100% máu. Khi bị Enemy nhỏ đâm vào hoặc đạn của Enemy to bắn trúng, người chơi sẽ bị mất 1 lượng máu nhất định, khi hết máu => Thua. Người chơi sẽ cố gắng né Enemy nhỏ, né đạn, cố gắng tiêu diệt hết số Enemy và thu thập Vàng. Wave cuối sẽ có Boss, tiêu diệt Boss để hoàn thành màn chơi. Sau khi Lose hoặc Win, sẽ có UI hiện ra 2 tùy chọn: Chơi lại hoặc thoát ra Main Menu 2.2 Gameplay
  • 19. Các loại Enemy thường 2.2 Gameplay STT Tên Enemy Ảnh 1 Enemy 2 Enemy2 3 Medium Enemy 4 mEnemy3
  • 20. 2.3 Ứng dụng và các thư viện sử dụng Rider Unity DOTweenPro
  • 21. Player - Tạo Project Unity Game 2D - Tạo các GameObject cho Player 2.4 Thực hiện
  • 22. Player - Tạo hiệu ứng đuôi máy bay bằng Particle - Sử dụng EnergyParticle đã được tạo trong Prefab - Sau đó thêm Script điều khiển cho máy bay 2.4 Thực hiện
  • 23. Bullet - Tạo Prefab Bullet - Thêm các Component và Script xử lý đạn - Bước tiếp theo cần tạo ra các viên đạn tại các vị trí bắn của máy bay - Để tránh tối đa việc Destroy/Instantiate object gây nặng cho hệ thống ta sẽ sử dụng Object Pooling để xử lý 2.4 Thực hiện
  • 24. Bullet - Tiếp theo ta sẽ tạo những vị trí đạn bắn ra từ máy bay, tạm thời ta sẽ tạo 4 vị trí (FirePoints) - Tạo script bắn đạn 2.4 Thực hiện
  • 25. Boundary - Hiện tại những object Bullet đang được khởi tạo liên tục nên ta sẽ tạo Collider phía trên để khi đạn va chạm ta sẽ Deactive đi. 2.4 Thực hiện
  • 26. Background - Ta sẽ sử dụng 2 back ground di chuyển xuống và viết Script Loop BackGround 2.4 Thực hiện
  • 27. Level Manager - Viết Script tạo LevelTable - Viết Script để load LevelTable và tạo Level - LevelTable sau khi được tạo sẽ nằm trong Assets/Resources - Sử dụng Bảng này để tạo ra các Wave 2.4 Thực hiện
  • 28. Enemy - Enemy nhỏ, không có chức năng bắn đạn - Di chuyển theo Path, khi đâm vào Player sẽ gây sát thương và phát nổ 2.4 Thực hiện
  • 29. Enemy 2 - Enemy nhỏ, không có chức năng bắn đạn - Di chuyển theo Path, khi đâm vào Player sẽ gây sát thương và phát nổ 2.4 Thực hiện
  • 30. Medium Enemy - Sau mỗi khoảng thời gian 1s, enemy sẽ xoay theo hướng vị trí của Player. Góc xoay trong khoảng (-20, 20). - Mỗi 2s sẽ bắn đạn - Mỗi lần bắn đạn sẽ chia làm 2 turn cách nhau 1s 2.4 Thực hiện
  • 31. mEnemy3 - Di chuyển theo Path - Mỗi 2s sẽ bắn 4 viên đạn - Sau mỗi 3s, enemy sẽ bắn 1 tên lửa, tên lửa bay lên trên trong 0.3s thì sẽ bay đuổi theo vị trí player - Tên lửa chỉ đuổi theo player trong 3s rồi bay thẳng theo hướng hiện tại 2.4 Thực hiện
  • 32. Boss - Boss có 2 state - Có 4 loại súng: +WingGun +Minigun +WaveGun –riêng WaveGun có 2 state +HandGun(FireGun) 2.4 Thực hiện
  • 33. Boss State 1 - Wing gun - Có 2 State đạn: 2.4 Thực hiện Wing1: Speed MinSpeed DeltaSpeed // tốc độ bị giảm sau mỗi frame CurrentSpeed Bullet di chuyển chậm dần tới khi MinSpeed thì sẽ nổ ra 4 viên đạn nhỏ Wing2: MiniBullet sẽ bay theo 4 hướng cách nhau 90° và xoay tròn khi bay.
  • 34. Boss State 1 - Minigun 2.4 Thực hiện - BulletMiniGun: Mô tả: Mỗi viên đạn sẽ bay theo 2 quỹ đạo: + Đạn bay ra từ súng với khoảng cách ngẫu nhiên (1f, 2f) + Sau đó bay theo hướng vị trí Player. +Sau 1s không đuổi nữa, bay thẳng hướng hiện tại
  • 35. Boss State 1 - WaveGun State 1 - + WaveGun sẽ xoay theo vị trí của Player - +Limit góc quay (-60,-10) và (10,60) - + Lúc bắn đạn thì tạm ngưng, bắn xong thì xoay tiếp 2.4 Thực hiện - BulletWaveGun: - Đạn bay ra và Scale lớn hơn
  • 36. Boss State 2 - Khi 2 WingGun bị tiêu diệt thì Boss chuyển sang State 2, trong thời gian chuyển trạng thái thì Active Shield chắn cho Boss, Active Health Bar cho WaveGun và HandGun - - Shield: 2.4 Thực hiện
  • 37. Boss State 2 - WaveGun State 2 2.4 Thực hiện - BulletWaveGun2: - Đạn bay ra từ vị trí 1 và 2, sau 0.5s thì đuổi theo vị trí Player - Đạn đuổi theo Player trong 2.5s rồi bay thẳng theo hướng hiện tại
  • 38. Boss State 2 - HandGun(FireGun) 2.4 Thực hiện - BulletWaveGun2: - Sử dụng ParticleSystem
  • 39. Boss State 2 - Khi tất cả mọi súng của Boss bị phá thì hiện thanh healthbar của boss - BOSS DEMO 2.4 Thực hiện
  • 40. UI 2.4 Thực hiện Hướng dẫn Màn hình chơi Menu
  • 43. - Tối ưu hóa game mượt hơn nữa - Tăng thêm Wave - Thêm vũ khí, đạn dược, nâng cấp máy bay và vũ khí - Thêm hiệu ứng âm thanh - Cung cấp thêm công cụ để người chơi chọn và chỉnh sửa tạo riêng cho mình những nhân vật, skin… 3.1 Hướng phát triển