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

Sử dụng UNITY3D ENGINE GAME đa nền tảng xây dựng ứng dụng giúp trẻ học chữ cái trên thiết bị di động

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 (6.8 MB, 82 trang )

SỬ DỤNG UNITY3D XÂY DỰNG ỨNG DỤNG HỌC CHỮ CÁI

Niên khóa: 2012-2016

VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGH
NGHỆ THÔNG TIN

NGUYỄN DUY HẢI

SỬ DỤNG
NG UNITY3D – ENGINE GAME ĐA NỀN TẢNG
NG XÂY D
DỰNG
ỨNG DỤNG
NG GIÚP TR
TRẺ HỌC CHỮ CÁI TRÊN THIẾT
TB
BỊ DI ĐỘNG
Ngành/Chuyên ngành: Công nghệ Thông tin

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – 2016


VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGH
NGHỆ THÔNG TIN

NGUYỄN DUY HẢI



SỬ DỤNG
NG UNITY3D – ENGINE GAME ĐA NỀN TẢNG
NG XÂY D
DỰNG
ỨNG DỤNG
NG GIÚP TR
TRẺ HỌC CHỮ CÁI TRÊN THIẾT
TB
BỊ DI ĐỘNG
Ngành/Chuyên ngành: Công nghệ Thông tin

Giảng viên hướ
ớng dẫn:
PGS. TS Đ
Đặng Thành Phu
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội – 2016


VIỆN ĐẠI HỌC MỞ HÀ NỘI

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA CÔNG NGHỆ THÔNG TIN

Độc lập - Tự do – Hạnh phúc

Hà Nội, ngày.....tháng.....năm 2016


NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP
Họ và tên:
Ngày sinh:
Chuyên ngành:
Lớp hành chỉnh:

Nguyễn Duy Hải
10/10/1993
Công nghệ thông tin
1210A02

Giới tính: Nam
Nơi sinh: Hải Phòng
Mã số: 12A10010019

1. TÊN ĐỀ TÀI
Sử dụng Unity3D – Engine game đa nền tảng xây dựng ứng dụng giúp trẻ học
chữ cái cho thiết bị di động.
2. NHIỆM VỤ VÀ NỘI DUNG
Nhiệm vụ cụ thể của đồ án tốt nghiệp:
- Tìm hiểu và nghiên cứu Engine game Unity3D. Ứng dụng phát triển game.
- Phân tích hệ thông và thiết kế kiến trúc ứng dụng giúp trẻ học chữ cái trên
thiết bị di động chạy hệ điều hành Android.
- Áp dụng công nghệ Game Engine, sử dụng Unity3D và ngôn ngữ lập trình
C# để xây dựng ứng dụng.
3. NGÀY GIAO NHIỆM VỤ

:11/01/2016

4. NGÀY HOÀN THÀNH NHIỆM VỤ : ..../...../.........

5. GIẢNG VIÊN HƯỚNG DẪN

GIẢNG VIÊN HƯỚNG DẪN

:PGS.TS Đặng Thành Phu

Ngày tháng
năm 2016
KHOA CÔNG NGHỆ THÔNG TIN


LỜI NÓI ĐẦU
Để hoàn thành được đồ án “Sử dụng Unity3D – Engine game đa nền
tảng xây dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di động”, trước
tiênem xin gửi lời cảm ơn đến tất cả các thầy cô khoa Công nghệ Thông tin –
Viện Đại học Mở Hà Nội đã tận tình tình dạy dỗ, truyền đạt kiến thức cho em
trong bốn năm đại học vừa qua và nhờ đó mà em đã có chút kiến thức và kinh
nghiệm cần thiết nhất để có thể thực hiện đề tài này. Đặc biệt, em xin gửi lời
cảm ơn chân thành nhất tới PGS. TS Đặng Thành Phu – giáo viên hướng dẫn,
người trực tiếp giúp đỡ, hướng dẫn và động viên em hoàn thành đồ án này.
Trong quá trình thực hiện đồ án, em đã học hỏi thêm được rất nhiều
kiến thức bổ ích, đã áp dụng những kiến thức đã được trang bị và tìm hiểu
thêm kiến thức để giải quyết một vấn đề cụ thể mà thực tiễn đặt ra. Đây là
một hành trang tốt cho bước đường tiếp theo của em. Mặc dù đã rất cố gắng
và nỗ lực hết sức để hoàn thành tốt đồ án nhưng do kiến thức và kinh nghiệm
của bản thân còn hạn chếvà thời gian thực hiện đồ án tương đối ngắn nên đồ
án còn nhiều thiết sót, em mong nhận được những ý kiến đóng góp quý báu từ
các thầy côvà các đồng nghiệp để đồ án của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!



MỤC LỤC
Trang

Chương 1NỀN TẢNG CÔNG NGHỆ ......................................................... 1
1.1. Ngôn ngữ lập trình C# ....................................................................... 1
1.1.1.

Giới thiệu ngôn ngữ lập trình C#............................................... 1

1.1.2.

C# và .Net Framework .............................................................. 2

1.1.3.

Cấu trúc một chương trình C# ................................................... 6

1.1.4.

Cú pháp cơ bản ......................................................................... 9

1.2. Tổng quan về công nghệ Game Engine ............................................ 14
1.2.1.

Khái niệm ............................................................................... 14

1.2.2.

Muc đích ................................................................................. 14


1.2.3.

Lịch sử .................................................................................... 15

1.2.4.

Xu hướng hiện tại ................................................................... 17

1.2.5.

Một số Game Engine............................................................... 18

1.3. Game Engine Unity3D..................................................................... 27
1.3.1.

Giới thiệu về Unity3D ............................................................. 27

1.3.2.

Các khái niệm và thành phần cơ bản của Unity3D .................. 30

1.3.3.

Kiến trúc engine Unity trên Android ....................................... 37

1.3.4.

Làm quen với môi trường Unity.............................................. 40


Chương 2KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG............................. 46
2.1. Xây dựng ý tưởng ............................................................................ 46
2.2. Phân tích hệ thống ứng dụng ............................................................ 48
2.2.1.

Quy trình xử lý........................................................................ 48

2.2.2.

Mô hình tiến trình nghiệp vụ ................................................... 49

2.2.3.

Sơ đồ phân rã chức năng ......................................................... 50

2.2.4.

Biểu đồ DFD mức 1 (mức đỉnh) .............................................. 51

2.2.5.

Biểu đồ DFD mức 2 (mức dưới đỉnh)...................................... 52


Chương 3THIẾT KẾ KIẾN TRÚC ỨNG DỤNG,MINIGAME VÀ GIAO
DIỆN ........................................................................................................... 55
3.1. Thiết kế giao diện Menu ứng dụng .................................................. 55
3.1. Thiết kế giao diện Chữ cái ............................................................... 56
3.1. Thiết kế giao diện menu MiniGame ................................................. 57
3.4. Thiết kế giao diện MiniGame Đoán chữ .......................................... 58

3.5. Thiết kế giao diện MiniGame Phản xạ ............................................. 60
3.6. Thiết kế giao diện MiniGame Điền chữ ........................................... 62
Chương 4DEMO ỨNG DỤNG VÀ HƯỚNG DẪN SỬ DỤNG ............... 64
4.1. Menu ứng dụng ................................................................................ 64
4.2. Học chữ cái ...................................................................................... 65
4.3. Menu Mini Game............................................................................. 66
4.4. Mini Game Đoán Chữ...................................................................... 67
4.5. Mini Game Phản Xạ ........................................................................ 68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................. 70
TÀI LIỆU THAM KHẢO .......................................................................... 71


TÓM TẮT ĐỒ ÁN
Họ và tên:

Nguyễn Duy Hải

Chuyên ngành:

Công nghệ Thông tin

Khóa: 12

Giảng viên hướng dẫn: PGS.TS Đặng Thành Phu
Tên đề tài:

Sử dụng Unity3D – Engine game đa nền tảng xây
dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di
động.


Trong xu hướng phát triển của ngành công nghệ thông tin, làm việc,học

tập và giải trí trên các thiết bị di động ngày càng phát triển. Tuy nhiên thời
điểm hiện tại, các lĩnh vực để phát triển ứng dụng trên di động chưa nhiều
trong khi nhu cầu sử dụng thiết bị di động để làm việc, học tập và giải trí ngày
càng cao. Các nhà sản xuất thiết bị di động lớn hiện nay chọn Android làm hệ
điều hành chủ đạo, số lượng người dùng và thiết bị ngày càng tăng dẫn đến
nhu cầu lớn về phát triển phần mềm. Vì thế, lập trình ứng dụng Android đang
là hướng đi mới cho các lập trình viên.
Cũng như các nước trên thế giới, Nhà nước ta coi sự nghiệp giáo dục,
đào tạo là quốc sách hàng đầu. Các thành tựu do Công nghệ thông tin mang
lại sẽ là động lực giúp có thêm các phương tiện mới đáp ứng các yêu cầu của
sự nghiệp đổi mới giáo dục – đào tạo. Với công nghệ ngày càng hoàn thiện về
phần cứng, giá thành ngày càng giảm và những đóng góp to lớn của lĩnh vực
phần mềm thì việc đưa máy tính, điện thoại di động,… làm công cụ hỗ trợ
cho công tác giảng dạy và học tập là một xu hướng tất yếu. Công nghệ thông
tin với các phương tiện phong phú, đa dạng đã cho phép mở ra các phương
pháp giảng và học mới, hỗ trợ quá trình tư duy sáng tạo, khả năng xử lý văn
bản, hình ảnh, âm thanh, truy cập, hỏi đáp, cập nhật, truyền bá nhanh chóng
thông tin. Giáo dục ở nước ta đã có nhiều cố gắng trong việc sử dụng công
nghệ thông tin với nhiều hình thức đào tạo. Tuy nhiên các giáo án cho các


hình thức mới này vẫn còn nghèo nàn, hạn chế, đặc biệt trong lĩnh vực mở
rộng khả năng tư duy, sáng tạo của trẻ em. Việc nghiên cứu tâm sinh lý, và
nhận thức ở trẻ em ở độ còn nhỏ là một điều vô cùng cần thiết cho việc xây
dựng những chương trình giúp các bậc phụ huynh tối ưu sự phát triển tư duy
cho con em mình với phương châm “chơi mà học, học mà chơi”.
Với những suy nghĩ như vậy, em đã đưa ra ý tưởng là xây dựng một
ứng dụng trên chiếc điện thoại chạy hệ điều hành Android bằng Unity3D –

Engine game, một công cụ lập trình game được nhiều lập trình viên sử dụng
để giúp trẻ học chữ cái, đỡ đi phần nào công sức của bậc cha mẹ trong việc
nuôi dạy con cái của mình. Vì vậy, em đã chọn đề tài đồ án tốt nghiệp “Sử
dụng Unity3D – Engine game đa nền tảng xây dựng ứng dụng giúp trẻ học
chữ cái cho thiết bị di động” với nội dung:
• Chương 1: Nền tảng công nghệ: Trong chương này trình bày nền tảng
công nghệ được sử dụng trong đồ án,đó là ngôn ngữ lập trình C#, công
nghệ Engine Game, đặc biệt đi sâu vào Unity3D-một Engine game sử
dụng trong đồ án.
• Chương 2: Khảo sát và phân tích hệ thống: Từ việc xây dựng ý tưởng
(kịch bản) đến xây dựng quy trình xử lý, mô hình tiến trình nghiệp vụ,
sơ đồ phân rã chức năng đến các biểu đồ DFD các mức đã được trình
bày trong chương này.
• Chương 3: Thiết kế kiến trúc ứng dụng, mini game và giao diện: Chi
tiết thiết kế giao diện và từng bước hoạt động của từng màn hình trong
ứng dụng, mini game.
• Chương 4: Demo ứng dụng và hướng dẫn sử dụng: Qua đó cho thấy kết
quả của đề tài và hướng dẫn cách sử dụng ứng dụng.


DANH MỤC HÌNH VẼ
Trang

Hình 1.1. Kiến trúc khung ứng dụng .NET .................................................. 4
Hình 1.2. Cấu trúc một chương trình C#......................................................... 7
Hình 1.3. Cú pháp cơ bản của chương trình C# ............................................ 10
Hình 1.4. Các từ khóa trong C# .................................................................... 13
Hình 1.5. Unity............................................................................................. 18
Hình 1.6. Corona SDK ................................................................................. 19
Hình 1.7. GameSalad ................................................................................... 20

Hình 1.8. Sprite Kit ...................................................................................... 21
Hình 1.9. Cocos2d-x..................................................................................... 22
Hình 1.10. LibGDX...................................................................................... 23
Hình 1.11. Andengine .................................................................................. 25
Hình 1.12. Gideros ....................................................................................... 26
Hình 1.13. Các nền tảng Unity3D hỗ trợ ...................................................... 27
Hình 1.14. Thư mục Assets trong Windows Explorer................................... 30
Hình 1.15. Thư mục Assets trong Unity ....................................................... 30
Hình 1.16. Các Scene của Unity ................................................................... 31
Hình 1.17. Kéo tài nguyên vào Scene để sử dụng ......................................... 32
Hình 1.18. Các Component của một GameObject ........................................ 32
Hình 1.19. Sprite trong Unity ....................................................................... 33
Hình 1.20. Cách tạo file script mới ............................................................... 34
Hình 1.21. Lập trình Unity bằng C# trên Visual Studio ................................ 34
Hình 1.22. Một file script đang gắn vào đối tượng ....................................... 35
Hình 1.23. Material và Shader ...................................................................... 36
Hình 1.24. Tổng quan kiến trúc Unity .......................................................... 37
Hình 1.25. Chu kỳ sống của thành phần script .............................................. 39


Hình 1.26. Giao diện môi trường làm việc của Unity ................................... 40
Hình 1.27. Cửa sổ Scene .............................................................................. 42
Hình 1.28. Cửa sổ Hierarchy ........................................................................ 42
Hình 1.29. Cửa sổ Inspector ......................................................................... 43
Hình 1.30. Cửa sổ Game .............................................................................. 43
Hình 1.31. Cửa sổ Project............................................................................. 44
Hình 1.32. Top bar trong Unity .................................................................... 45
Hình 2.1. Sơ đồ quy trinh xử lý .................................................................... 48
Hình 2.2. Mô hình tiến trình nghiệp vụ......................................................... 49
Hình 2.3. Sơ đồ phân rã chức năng ............................................................... 50

Hình 2.4. Biểu đồ DFD mức đỉnh ................................................................. 51
Hình 2.5. Biểu đồ DFD mức 2 chức năng “Cài đặt” ..................................... 52
Hình 2.6. Biểu đồ DFD mức 2 chức năng “Học chữ cái”.............................. 53
Hình 2.7. Biểu đồ DFD mức 2 chức năng “Mini Game” .............................. 54
Hình 3.1. Giao diện màn hình Menu ứng dụng ............................................. 55
Hình 3.2. Biều đồ trình tự hoạt động Menu ứng dụng................................... 55
Hình 3.3. Giao diện màn hình Chữ cái ......................................................... 56
Hình 3.4. Biều đồ trình tự hoạt động màn hình Chữ cái................................ 56
Hình 3.5. Giao diện màn hình menu MiniGame ........................................... 57
Hình 3.6. Biều đồ trình tự hoạt động màn hình menu MiniGame ................. 57
Hình 3.7. Giao diện màn hình game Đoán chữ ............................................. 58
Hình 3.8. Biều đồ trình tự hoạt động game Đoán chữ ................................... 59
Hình 3.9. Giao diện màn hình game Phản xạ ................................................ 60
Hình 3.10. Biều đồ trình tự hoạt động game Phản xạ.................................... 61
Hình 3.11. Giao diện màn hình game Điền chữ ............................................ 62
Hình 3.12. Biểu đồ trình tự hoạt động game Điền chữ .................................. 63
Hình 4.1. Màn hình demo Menu ứng dụng ................................................... 64


Hình 4.2. Màn hình demo chức năng học chữ cái (hình 1) ........................... 65
Hình 4.3. Màn hình demo chức năng học chữ cái (hình 2) ........................... 66
Hình 4.4. Màn hình demo Menu Mini Game ................................................ 66
Hình 4.5. Màn hình demo Mini Game Đoán Chữ ......................................... 67
Hình 4.6. Màn hình demo Mini Game Đoán Chữ (chọn sai)......................... 68
Hình 4.7. Màn hình demo Mini Game Phản Xạ ............................................ 69
Hình 4.8. Màn hình demo Mini Game Phản Xạ (chọn sai) ........................... 69


1


Chương 1
NỀN TẢNG CÔNG NGHỆ
1.1.

Ngôn ngữ lập trình C#

1.1.1. Giới thiệu ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát,
hướng đối tượng được phát triển bởi Microsoft và được phê chuẩn bởi
European Computer Manufacturers Association (ECMA) và International
Standards Organization (ISO).
C# được phát triển bởi Anders Hejlsberg và team của ông trong khi
phát triển .Net Framework.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm
Executable Code và Runtime Environment, cho phép chúng ta sử dụng các
ngôn ngữ bậc cao đa dạng trên các nền tảng và cấu trúc máy tính khác nhau.
Dưới đây là các lý do làm C# là ngôn ngữ lập trình chuyên nghiệp
được sử dụng rộng rãi:
• Nó là một ngôn ngữ lập trình hiện đại, mục đích tổng quát.
• Nó là ngôn ngữ lập trình hướng đối tượng.
• Nó dễ dàng để học.
• Nó là một ngôn ngữ được cấu trúc.
• Nó tạo các chương trình hiệu quả.
• Nó có thể được biên dịch trên nhiều nền tảng máy tính khác nhau.
• Nó là một phần của .Net Framework.
Cấu trúc C# khá gần với các ngôn ngữ bậc cao truyền thống như C và
C++, và là một ngôn ngữ lập trình hướng đối tượng. Nó có sự giống nhau


2


mạnh mẽ với Java và có nhiều đặc điểm lập trình mạnh mẽ mà làm cho nó
trở nên ưa thích với các lập trình viên trên toàn thế giới.
Dưới đây là các đặc điểm quan trọng của C#:
• Điều kiện Boolean
• Tự động dọn rác bởi Garbage-Collector (GC)
• Thư viện chuẩn (Standard Library)
• Assembly
• Property và sự kiện (Event)
• Delegate Quản lý sự kiện
• Dễ dàng để sử dụng Generic
• Indexer
• Biên dịch có điều kiện (Conditional Compilation)
• Đa luồng dễ dàng (Multithreading)
• LINQ và Lambda Expression
• Tích hợp với Windows
1.1.2. C# và .Net Framework
1.1.2.1. Nền tảng của .NET
Khi Microsoft công bố C# vào tháng 7 năm 2000 thì đó chỉ là một
phần trong số rất nhiều sự kiện mà nền tảng .Net được công bố. Nền tảng
.Net là bộ khung phát triển ứng dụng mới, nó cung cấp một giao diện lập
trình ứng dụng (Application Programming Interface - API) mới mẽ cho các
dịch vụ và hệ điều hành Windows, cụ thể là Windows 2000. Nó cũng mang
lại nhiều kỹ thuật khác nổi bật của Microsoft suốt từ những năm 90. Trong
số đó có các dịch vụ COM+, công nghệ ASP, XML và thiết kế hướng đối
tượng, hỗ trợ các giao thức dịch vụ web mới như SOAP, WSDL và UDDL
với trọng tâm là Internet, tất cả được tích hợp trong kiến trúcDNA.


3


Nền tảng .NET bao gồm bốn nhómsau:
• Một tập các ngôn ngữ, bao gồm C# và Visual Basic .Net; một tập các
công cụ phát triển bao gồm Visual Studio .Net; một tập đầy đủ các thư
viện phục vụ cho việc xây dựng các ứng dụng web, các dịch vụ web và
các ứng dụng Windows; còn có CLR - Common Language Runtime:
(ngôn ngữ thực thi dùng chung) để thực thi các đối tượng được xây dựng
trên bô khung này.
• Một tập các Server Xí nghiệp .Net như SQL Server 2000. Exchange 2000,
BizTalk 2000, … chúng cung cấp các chức năng cho việc lưu trữ dữ liệu
quan hệ, thư điện tử, thương mại điện tử B2B, …
• Các dịch vụ web thương mại miễn phí, vừa được công bố gần đậy như là
dự án Hailstorm; nhà phát triển có thể dùng các dịch vụ này để xây dựng
các ứng dụng đòi hỏi tri thức về định danh người dùng…
• NET cho các thiết bị không phải PC như điện thoại (cell phone), thiết bị
game.
1.1.2.2. .NET Framework
.NET hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các
biệt lệ, đa hình thông qua nhiều ngôn ngữ. .NET Framework thực hiện được
việc này nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung)
mà tất cả các thành phần.NET đều tuân theo. Ví dụ, mọi thứ trong .NET đều
là đối tượng, thừa kế từ lớp gốc System.Object.
Ngoài ra .NET còn bao gồm Common Language Specification - CLS
(đặc tả ngôn ngữ chung). Nó cung cấp các qui tắc cơ bản mà ngôn ngữ
muốn tích hợp phải thỏa mãn. CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ
hỗ trợ .NET. Trình biên dịch tuân theo CLS sẽ tạo các đối tượng có thể


4


tương hợp với các đối ttượng khác. Bộ thư viện lớp củaa khung ứng dụng
(Framework
Framework Class Library - FCL) có thể được dùng

bởi bất
ất kỳ
k ngôn ngữ

nào tuân theo CLS.
.NET Framework nnằm ở tầng trên của hệ điều hành (bấất kỳ hệ điều
hành nào không chỉ làà Windows). .NET Framework bao bao ggồm:
ồm:
• Bốn ngôn ngữ
ữ chính thức: C#, VB.Net, C++, và Jscript.NET
• CommonLanguageRuntime
CommonLanguageRuntimeCLR,nềntảnghư
nghướngđốitượngchopháttriển
• ứng dụng
ng Windows vvà Web mà các ngôn ngữ có th
thể chia sẻ sử
dụng.
• Bộ thư việnn Framework Class Library - FCL.

Hình 11.1. Kiến trúc khung ứng dụng .NET
Thành phầnn quan tr
trọng nhất của .NET Framework làà CLR, nó cung
cấp môi trường cho ứng ddụng thực thi, CLR là một máy ảo, tương
ương tự máy ảo
Java. CLR kích hoạt đốối tượng, thực hiện kiểm tra bảo mật, cấp
ấp phát

ph bộ nhớ,
thực thi và thu dọn chúng.


5

Trong Hình 1.1 tầng trên của CLR bao gồm:
• Các lớp cơsở
• Các lớp dữ liệu vàXML
• Các lớp cho dịch vụ Web, Web form, và Windows form.
Các lớp này được gọi chung là FCL, Framework Class Library, cung
cấp API hướng đối tượng cho tất cả các chức năng của .NET Framework
(hơn 5000 lớp).
Các lớp cơ sở tương tự với các lớp trong Java. Các lớp này hỗ trợ các
thao tác nhập xuất, thao tác chuổi, văn bản, quản lý bảo mật, truyền thông
mạng, quản lý tiểu trình và các chức năng tổng hợp khác…
Trên mức này là lớp dữ liệu và XML. Lớp dữ liệu hỗ trợ việc thao tác
các dữ liệu trên cơ sở dữ liệu. Các lớp này bao gồm các lớp SQL (Structure
Query Language: ngôn ngữ truy vấn có cấu trúc) cho phép ta thao tác dữ liệu
thông qua một giao tiếp SQL chuẩn. Ngoài ra còn một tập các lớp gọi là
ADO.NET cũng cho phép thao tác dữ liệu. Lớp XML hỗ trợ thao tác dữ liệu
XML, tìm kiếm và diễn dịch XML.
Trên lớp dữ liệu và XML là lớp hỗ trợ xây dựng các ứng dụng
Windows (Windows forms), ứng dụng Web (Web forms) và dịch vụ Web
(Web services).


6

1.1.2.3. Biên dịch và ngôn ngữ trung gian(MSIL)

Với .NET chương trình không biên dịch thành tập tin thực thi, mà biên
dịch thành ngôn ngữ trung gian (MSIL - Microsoft Intermediate Language,
viết tắt là IL), sau đó chúng được CLR thực thi. Các tập tin IL biên dịch từ
C# đồng nhất với các tập tin IL biên dịch từ ngôn ngữ .NETkhác.
Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu
trên đĩa. Khi chạy chương trình thì IL được biên dịch (hay thông dịch) một
lần nữa bằng trình Just In Time – JIT và khi này kết quả là mã máy và bộ xử
lý sẽ thực thi.
Trình biên dịch JIT chỉ chạy khi có yêu cầu. Khi một phương thức
được gọi, JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy. JIT
có thể nhận biết mã nguồn đã được biên dịch chưa, để có thể chạy ngay ứng
dụng hay phải biên dịch lại.
CLS có nghĩa là các ngôn ngữ .Net cùng sinh ra mã IL. Các đối tượng
được tạo theo một ngôn ngữ nào đó sẽ được truy cập và thừa kế bởi các đối
tượng của ngôn ngữ khác. Vì vậy ta có thể tạo được một lớp cơ sở trong
VB.Net và thừa kế nó từ C#.
1.1.3. Cấu trúc một chương trình C#
Một chương trình C# gồm các phần sau:
• Khai báo Namespace
• Một class
• Phương thức của lớp
• Thuộc tính của lớp
• Một phương thức Main
• Lệnh và biểu thức
• Comment


7

Đoạn code đơn giản sau sẽ in “Hello World”:


Hình 1.2. Cấu trúc một chương trình C#
Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

Các phần của chương trình trên:
• Dòng đầu tiên using System;. Từ khóa using được sử dụng để
baoSystemnamespace trong chương trình. Nói chung, một chương trình
có nhiều lệnh using.
• Dòng tiếp theo có khai báo namespace. Một namespace là một tập hợp
các lớp.HelloWorldApplication namespace chứa class HelloWorld.
• Dòng tiếp theo có một khai báo class, class HelloWorld chứa các định
nghĩa dữ liệu và phương thức mà chương trình của bạn sử dụng. Nói
chung, class chứa nhiều phương thức. Các phương thức định nghĩa hành
vi của class. Tuy nhiên, lớpHelloWorld chỉ có một phương thức Main.


8

• Dòng tiếp theo định nghĩa phương thức Main, mà là entry point cho tất
cả chương trình C#. Phương thức Main biểu diễn trạng thái lớp khi được
thực thi.
• Dòng tiếp theo /*…*/ bị bỏ qua bởi compiler và nó là comment cho
chương trình.
• Phương

thức

Main

xác


định

hành

vi

của



với

lệnhConsole.WriteLine("Hello World");

o WriteLine là một phương thức của lớp Console được định nghĩa
trong System namespace. Lệnh này làm thông báo “Hello, World!”
được hiển thị trên màn hình.
• Dòng cuối cùng Console.ReadKey(); là cho VS.NET Users. Nó làm
chương trình đợi cho một phím được nhấn và nó ngăn cản màn hình chạy
và đóng một cách nhanh chóng khi chương trình được phát động từ
Visual Studio.NET.
Các đặc điểm cần ghi nhớ:
• C# là phân biệt kiểu chữ (case sensitive).
• Tất cả lệnh và biểu thức phải kết thúc với một dấu chấm phảy (;).
• Sự thực thi chương trình bắt đầu tại phương thức Main.
• Không giống Java, tên file chương trình có thể khác tên lớp.

Biên dịch và thực thi chương trình C#
Nếu sử dụng Visual Studio.NET để biên dịch và thực thi các chương

trình C#, thì theo các bước sau:
• Bắt đầu Visual Studio.
• Trên thanh menu, chọn File -> New -> Project.
• Chọn Visual C# từ các Template, và sau đó chọn Windows.


9

• Chọn Console Application.
• Xác định tên cho project và nhấn nút OK.
• Điều này tạo New Project trong Solution Explorer.
• Viết code trong Code Editor.
• Nhấn nút Run hoặc nhấn phím F5 để thực thi project. Một cửa sổ
Command Prompt xuất hiện mà chứa dòng Hello World.
Có thể biên dịch một chương trình C# bởi sử dụng command-line thay
cho Visual Studio IDE:
• Mở một Text Editor và thêm code trên vào.
• Lưu tệp dưới dạng helloworld.cs
• Mở công cụ Command Prompt tool và tới thư mục nơi bạn lưu file
đó.
• Soạn csc helloworld.cs và nhấn Enter để biên dịch code.
• Nếu không có lỗi nào trong code, thì Command prompt sẽ nhẩy
sang dòng tiếp theo và tạo tệp helloworld.exe có thể thực thi
(executable).
• Soạn helloworld để thực thi chương trình.
• Ta có thể thấy output là Hello World được in trên màn hình.
1.1.4. Cú pháp cơ bản
C# là một ngôn ngữ lập trình hướng đối tượng. Trong phương pháp lập
trình hướng đối tượng, một chương trình gồm các đối tượng đa dạng mà
tương tác với nhau các cách thức của action. Các action mà một đối tượng có

thể nhận được gọi là các phương thức. Các đối tượng cùng loại được xem
như là có cùng kiểu hoặc, được xem như là trong cùng lớp.


10

Ví dụ, xét đối tượng Rectangle. Nó có các thuộc tính như length và
width. Phụ thuộc vào thiết kế trên. Nó có thể cần những cách để cấp nhận các
giá trị của thuộc tính này, tính toán diện tích và hiển thị chi tiết.
Ví dụ sau triển khai một lớp Rectangle và cú pháp C# cơ bản của
chương trình này:

Hình 1.3. Cú pháp cơ bản của chương trình C#


11

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

• Từ khóa “using” trong C#:
o Lệnh đầu tiên trong bất kỳ chương trình C# nào là:

o Từ khóa using được sử dụng để bao namespace trong chương
trình. Một chương trình C# có thể bao nhiều lệnh using.
• Từ khóa “class”: được sử dụng để khai báo một lớp trong C#.
• Comments trong C#: Comment được sử dụng để thuyết minh code.
Compiler bỏ qua các comment. Các comment đa dòng trong các
chương trình C# bắt đầu với /* và kết thúc với */ như sau:

- Comment đơn dòng được chỉ dẫn bởi ký hiệu '//'. Ví dụ:


• Biến thành viên: Các biến là các thuộc tính hoặc thành viên dữ liệu của
một lớp, được sử dụng để lưu giữ dữ liệu. Trong chương trình trước đó,
lớp Rectangle có hai biến thành viên là length và width.
• Hàm thành viên: Hàm là tập hợp các lệnh mà thực hiện một tác vụ cụ
thể. Các hàm thành viên của một lớp được khai báo bên trong lớp


12

đó.Lớp

Rectangle

chứa

3

hàm

thành

viên

là:AcceptDetails,GetAreavàDisplay.
• Thuyết

minh

một


class:

Trong

chương

trình

trên,

lớpExecuteRectanglechứa phương thức Main() và thuyết minh
lớpRectangle.
• Định danh (Identifier): Một định danh là một tên được sử dụng để nhận
diện một lớp, biến, hàm hoặc bất kỳ mục tự định nghĩa (user-defined).

o Một tên phải bắt đầu với một chữ cái mà có thể được theo sau
bởi một dãy các chữ cái, ký số (0-9) hoặc dấu gạch dưới (_). Ký
tự đầu tiên của một định danh không thể là một ký số.

o Nó phải không chứa bất kỳ khoảng trống hoặc ký tự như ? - + !
@ # % ^ & * ( ) [ ] { } . ; : " ' / và \. Tuy nhiên, dấu gạch dưới có
thể được sử dụng.

o Nó không nên là một từ khóa trong C#.
• Từ khóa trong C#:

o Từ khóa là các từ dành riêng (Reserved Keyword) được định nghĩa
trước cho C# compiler. Những từ khóa này không thể được sử dụng
làm định danh. Tuy nhiên, nếu bạn muốn sử dụng các từ khóa này

để làm định danh, bạn có thể đặt ký tự @ ở trước chúng.

o Trong C#, một số định danh có ý nghĩa đặc biệt trong ngữ cảnh của
code, ví dụ như get và set được gọi là các contextual keyword (từ
khóa thuộc ngữ cảnh).

o Bảng sau liệt kê các từ khóa dành riêng và các từ khóa thuộc ngữ
cảnh trong C#:


13

Hình 1.4. Các từ khóa trong C#


14

1.2.

Tổng quan về công nghệ Game Engine

1.2.1. Khái niệm
Một Game engine (hay công cụ tạo Game/động cơ Game) là một phần
mềm được viết để thiết kế và phát triển video Game, hiểu đơn giản nó là loại
phần mềm trung gian kết nối tương tác của nhiều ứng dụng trong cùng một hệ
thống với nhau. Để hiểu kỹ hơn, có thể tưởng tượng Game engine là tập hợp
của các thư viện các hàm độc lập cộng với hệ thống tool hỗ trợ cho nhiều
công đoạn trong việc phát triển game. Thí dụ như ngay trong các sản phẩm
này đã có những phần mềm giúp thiết kế mô hình (model editor), dựng màn
chơi (level editor), trình viết mã (script editor) và thậm chí là cả hệ thống mô

phỏng vật lý. Có rất nhiều loại Game Engine dùng để thiết kế game cho các
hệ máy như hệ Consoles hay máy tính cá nhân (PC). Chức năng cốt lõi của
Game Engine phần lơn nằm trong công cụ dựng hình (kết xuất đồ họa) cho
các hình ảnh 2 chiều (2D) hay 3 chiều (3D), công cụ vật lý (hay công cụ tính
toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động (Animation),
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. Quá trình phát triển Game tiết kiệm được rất nhiều
thời gian và kinh phí vào việc tái sử dụng và tái thích ứng một Engine để tạo
nhiêu Game khác nhau.
1.2.2. Muc đích
Game engine cung cấp một bộ các công cụ phát triển trực quan và có
thể tái sử dụng từng thành phần trong đó. Nói chung các bộ công cụ này cung
cấp một môi trường phát triển tích hợp được đơn giản hóa. Phát triển ứng
dụng nhanh (tiếng Anh:rapid application development) cho game theo cách
lập trình hướng dữ liệu. Những game engine này đôi khi còn được gọi là các
"phần mềm trung gian cho game"(game middleware). Như ý nghĩa của thật


×