Tải bản đầy đủ (.docx) (50 trang)

Đồ án tốt nghiệp- game đua ô tô android

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 (2.42 MB, 50 trang )

Mục Lục :
DANH MỤC HÌNH ẢNH
CHƯƠNG I : CƠ SỞ LÝ THUYẾT.
1. GAME :
 Thể loại: Game tốc độ.
 Nội dung: người chơi điều khiển xe hoàn thành 4 vòng đua trong thời gian
là 3 phút, trên vòng đua sẽ có một số chướng ngại vật như :
• +10 : cộng thêm 10 điểm vào số điểm hiện có.
• -10 : Trừ 10 điểm từ số điểm hiện có.
• Chướng ngại vật làm giảm tốc độ của xe trong thời gian 5s.
• Chướng ngại vật làm đảo lộn điều khiển xe trong thời gian 5s.
Kết thúc trò chơi : +) khi hết thời gian mà chưa hoàn thành xong 4
vòng đua, không hiển thị điểm. có thể chơi lại hoặc thoát.
+) khi chưa hết thời gian mà hoàn thành xong 4
vòng đua, hiển thị điểm của người chơi, có thể chơi lại hoặc thoát.
 Nền tảng phát triển: Android.
2. CÔNG NGHỆ :
• Lập trình theo hướng đối tượng
• Chọn java để làm ngôn ngữ lập trình
• Sử dụng autodesk 3DS Max và Unity tạo hình và hiệu ứng cho các đối
tượng
• Sử dụng cảm biến gia tốc, hoặc màn hình cảm ứng để điều khiển nhân vật.
3. CƠ SỞ LÝ THUYẾT :
3.1. Hệ điều hành Android :
3.1.1. Khái niệm về Androi :
Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một
số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng
Linux.
Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó
được Google mua lại vào năm 2005).
Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng


cho hệ điều hành của mình.Hiện tại có khoảng 70,000 ứng dụng cho Android os
và vào khoảng 100,000 ứng dụng đã được đệ trình, điều này khiến Android trở
thành hệ điều hành di động có môi trường phát triển lớn thứ 2. Các nhà phát triển
viết ứng dụng cho Android dựa trên ngôn ngữ Java.
Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành
lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng,
phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di
động trong tương lai.
Google công bố hầu hết các mã nguồn của Android theo bản cấp phép
Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML,
2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++.
3.1.2. Lịch sử phát triển của Android:
Tháng 7 năm 2005, Google mua lại Android, Inc., một công ty nhỏ mới
thành lập có trụ sở ở Palo Alto, California, Mỹ. Những nhà đồng sáng lập của
Android chuyển sang làm việc tại Google gồm có Andy Rubin (đồng sáng lập
công ty Danger), Rich Miner (đồng sáng lập công ty Wildfire Communications),
Nick Sears (từng là phó chủ tịch của T-Mobile), và Chris White (trưởng nhóm
thiết kế và phát triển giao diện tại WebTV). Khi đó, có rất ít thông tin về các
công việc của Android, ngoại trừ việc họ đang phát triển phần mềm cho điện
thoại di động. Điều này tạo những tin đồn về việc Google có ý định bước vào thị
trường điện thoại di động.
Tại Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị
di động dựa trên hạt nhân Linux, được họ tiếp thị đến các nhà sản xuất thiết bị
cầm tay và các nhà mạng trên những tiền đề về việc cung cấp một hệ thống mềm
dẻo, có khả năng nâng cấp mở rộng cao.[cần dẫn nguồn] Một số nguồn tin cho
biết trước đó Google đã lên danh sách các thành phần phần cứng và các đối tác
phần mềm, đồng thời ra hiệu với các nhà mạng rằng họ sẵn sàng hợp tác ở nhiều
cấp độ khác nhau. Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường
điện thoại di động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật
báo phố Wall chú thích rằng Google muốn đưa công nghệ tìm kiếm và các ứng

dụng của họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều
Hoàng Bảo Khánh – K49 CNTT
2
này. Các phương tiện truyền thông in và online cũng sớm có bài viết về những tin
đồn cho rằng Google đang phát triển một thiết bị cầm tay mang thương hiệu
Google. Và lại càng có nhiều suy đoán sau bài viết về việc Google đang định
nghĩa các đặc tả công nghệ và trình diễn các mẫu thử với các nhà sản xuất điện
thoại.
3.1.3. Đặc tính mở của Android :
Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứng
dụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp. Nó được
xây dựng để được thực sự mở. Ví dụ, một ứng dụng có thể kêu gọi bất kỳ chức
năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc bằng
cách sử dụng máy ảnh, cho phép các nhà phát triển để tạo ra phong phú hơn và
nhiều hơn nữa những kinh nghiệm cố kết cho người dùng. Android được xây
dựng trên mở Linux Kernel. Hơn nữa, nó sử dụng một máy ảo tuỳ chỉnh được
thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di
động. Android là mã nguồn mở, nó có thể được liberally mở rộng. Nền tảng này
sẽ tiếp tục tiến triển như cộng đồng nhà phát triển công việc cùng nhau để xây
dựng các ứng dụng di động sáng tạo.
3.1.4. Các phiên bản Android :
Hệ điều hành Android đã trải qua chặng đường năm năm phát triển, hàng
loạt phiên bản mang nhiều cải tiến ra mắt. Sau đây là các tính năng chủ chốt
trong các phiên bản Android từ khi ra mắt đến nay.
Android 1.0 :
Ra mắt: ngày 23-11-2008.
HTC Dream là dòng smartphone thương mại dùng Android đầu tiên với
kiểu dáng trượt kèm bàn phím vật lý. Phiên bản Android 1.0 chưa được Google
định hình tên mã, dù trước đó tên gọi Astro Boy hay Bender được gán cho thế hệ
đầu tiên này.

Android 1.0 rất nguyên sơ, tích hợp sẵn khả năng đồng bộ dữ liệu với các
dịch vụ trực tuyến của Google như Gmail, Google Calendar và Contacts, một
trình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạng thái hiển thị các thông
báo ứng dụng và một ứng dụng chụp ảnh (camera) tuy chưa cho phép thay đổi độ
phân giải và chất lượng ảnh.
Android 1.1 :
Ra mắt: ngày 9-2-2009.
Bên cạnh con số, Google rục rịch đưa hệ thống tên gọi (tên mã) vào các
phiên bản Android. Tuy chưa chính thức áp dụng nhưng Android 1.1 đã có tên
Petit Four. Không bao gồm nhiều tính năng, phiên bản này bổ sung một số chức
năng mới cho Google Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện thoại đã
Hoàng Bảo Khánh – K49 CNTT
3
có thể hiển thị hoặc ẩn khi gọi, chương trình SMS cho phép người dùng lưu tập
tin đính kèm. Android 1.1 sửa một số lỗi trong Android 1.0.
Android 1.5 : CupCake
Ra mắt: ngày 30-4-2009.
Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang
nhiều tính năng mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ điển từ
ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát lại
video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo hướng
sử dụng (screen rotation). Trình duyệt web trong Cupcake có thêm khả năng sao
chép/ dán (copy/paste).
Ngoài ra, phiên bản này cho phép người dùng hiển thị hình ảnh trong danh
bạ, một điểm thú vị mà hầu hết người dùng điện thoại di động muốn có. Màn
hình chuyển đổi và hình ảnh khi khởi động máy được làm mới.
Android 1.6 : Donut
Ra mắt: ngày 30-9-2009.
Donut khắc phục các chức năng "lỏng lẻo" trong Cupcake, mở rộng chức
năng tìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ. Android

Market trở thành "chợ đầu mối" để người dùng tìm kiếm và xem các ứng dụng
Android. Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn. Hệ điều
hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone
màn hình lớn.
Android 2.0 : Eclair1
Ra mắt: ngày 26-10-2009.
Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair,
phiên bản được nhận định là "bước đi lớn" của hệ điều hành này.
Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống.
Ứng dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng
trắng, hỗ trợ đèn flash và các hiệu ứng màu sắc.
Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối
Bluetooth tốt hơn, đặc biệt tùy chọn đồng bộ nhiều tài khoản. Một điểm thuận
tiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho phép nhấn chọn vào
một ảnh danh bạ để gọi, nhắn tin hay email đến họ. Giao diện ứng dụng lịch biểu
(Calendar) cũng thay đổi.
Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper)
dù tùy chọn này tiêu tốn khá nhiều pin.
Hoàng Bảo Khánh – K49 CNTT
4
Android 2.2 : Froyo
Ra mắt: ngày 20-5-2010.
Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn. Phiên bản 2.2
(Froyo) mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng và game
trên nền Flash. Người dùng cũng có thể xem video clip nền Flash như YouTube
và "ra lệnh" thực hiện cuộc gọi qua Bluetooth.
Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu
thích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành
thiết bị phát sóng Wi-Fi từ kết nối 3G. Tính năng này được sử dụng rất phổ
biến đến ngày nay.

Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD
thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị. Điểm "đầu tiên" nữa
trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số. Thiết bị đầu tiên mang
nhãn Froyo ra mắt thị trường là HTC Nexus One.
Android 2.3 : Gingerbread
Ra mắt ngày: 6-12-2010.
Đến cuối năm 2012, Gingerbread vẫn đang "phủ sóng" trên rất nhiều thiết
bị dùng Android, chiếm đến hơn phân nửa (54%). Google hợp tác Samsung trình
làng dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ
công nghệ giao tiếp tầm gần NFC.
Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép
theo dõi và truy xuất đến các tập tin đã tải về máy. Hệ thống này hỗ trợ nhiều
camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả
hơn, tiết kiệm thời lượng pin. Phiên bản này khắc phục khá nhiều lỗi từ Froyo,
kèm theo một số điều chỉnh trong giao diện người dùng.
Android 3.0 : Honeycomb
Ra mắt: ngày 22-2-2011.
Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu
tiên dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM.
Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù
hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa
tác vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng đang cùng
chạy. Không chỉ có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến
tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần
cứng
Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất,
khắc phục sự phân mảng của Android (có các phiên bản riêng dành cho
smartphone và tablet).
Hoàng Bảo Khánh – K49 CNTT
5

. Android 4.0 : Ice Cream Sandwich
Ra mắt: ngày 19-10-2011.
"Bánh kem sandwich" (ICS) là thế hệ Android được mong đợi nhất đến
nay, ra đời cùng dòng smartphone "bom tấn" Samsung Galaxy Nexus, thế hệ
smartphone đầu tiên trang bị ICS.
Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào phần
bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách ứng dụng
hơn. Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock
screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn
nhanh từ Lock screen.
Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn.
. Android 4.1 : Jelly Bean
Ra mắt: 9-7-2012.
Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị
dùng Jelly Bean đầu tiên ra mắt. Android 4.1 nâng tầm hoạt động cho hệ điều
hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay.
Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và
linh hoạt. Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt
web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, với
khả năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính.
Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành
cho Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm
thông tin, xác định vị trí Rất đa năng và được xem như lời đáp trả của Google
với "phụ tá ảo" Apple Siri trong iOS.
. Android 4.2 : Jelly Bean
Ra mắt: tháng 11-2012.
Chỉ sau gần năm tháng ra mắt Android 4.1, Google tiếp tục ra mắt phiên
bản 4.2 và vẫn mang tên mã Jelly Bean.

Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp

ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính
năng lướt chọn từ rất hay trong bàn phím ảo. Chức năng "bom tấn" hỗ trợ nhiều
tài khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong
Android 4.2 nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này.
Tương lai Android X
Nhiều dự đoán cho rằng thế hệ Android 5.0 kế tiếp sẽ có tên mã "Key Lime
Pie" và thế hệ thiết bị Nexus mới của Google sẽ một lần nữa trở thành "đại diện
đầu tiên" sở hữu nền tảng mới này. Android sẽ dần xóa nhòa lằn ranh giữa hệ
điều hành cho thiết bị di động và hệ điều hành cho máy tính cá nhân, giảm khác
biệt phân mảnh, đem đến những chức năng hơn nữa.
Hoàng Bảo Khánh – K49 CNTT
6
3.2. Java :
3.2.1. Lịch sử java :
Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu
vào tháng 6 năm 1995. Từ đó, nó đã trở thành một công cụ lập trình của
các lập trình viên chuyên nghiệp. Java được xây dựng trên nền tảng của C
và C++. Do vậy nó sử dụng các cú pháp của C và các đặc trưng hướng đối
tượng của C++. Ban đầu Java được thiết kế để làm ngôn ngữ viết chương
trình cho các sản phẩm điện tử dân dụng như đầu video, tivi, điện thoại,
máy nhắn tin…
3.2.2. đặc trưng của java
• Đơn giản :
Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học
và quen thuộc với đa số người lập trình. Java tựa như C++, nhưng đã lược
bỏ đi các đặc trưng phức tạp, không cần thiết của C và C++ như: thao tác
con trỏ, thao tác định nghĩa chồng toán tử (operator overloading),… Java
không sử dụng lệnh “goto” cũng như file header (.h). Cấu trúc “struct” và
“union” cũng được loại bỏ khỏi Java.
• Hướng đối tượng

Có thể nói java là ngôn ngữ lập trình hoàn toàn hướng đối tượng,
tất cả trong java đều là sự vật, đâu đâu cũng là sự vật.
• Độc lập với hệ nền:
Mục tiêu chính của các nhà thiết kế java là độc lập với hệ nền hay
còn gọi là độc lập phần cứng và hệ điều hành. Đây là khả năng một
chương trình được viết tại một máy nhưng có thể chạy được bất kỳ
đâu. Các chương trình viết bằng java có thể chạy trên hầu hết các hệ nền
mà không cần phải thay đổi gì, điều này đã được những người lập trình
đặt cho nó một khẩu hiệu ‘viết một lần, chạy mọi nơi’, điều này là không
thể có với các ngôn ngữ lập trình khác.
• Hỗ trợ lập trình đa tuyến
Đây là tính năng cho phép viết một chương trình có nhiều đoạn mã
lệnh được chạy song song với nhau. Với java ta có thể viết các chương
trình có khả năng chạy song song một cách dễ dàng, hơn thế nữa việc
đồng bộ tài nguyên dùng chung trong Java cũng rất đơng giản. Điều này là
Hoàng Bảo Khánh – K49 CNTT
7
không thể có đối với một số ngôn ngữ lập trình khác như C/C++, pascal

• Phân tán
Java hỗ trợ đầy đủ các mô hình tính toán phân tán: mô hình
client/server, gọi thủ tục từ xa…
• Hỗ trợ internet
Mục tiêu quan trọng của các nhà thiết kế java là tạo điều kiện cho
các nhà phát triển ứng dụng có thể viết các chương trình ứng dụng internet
và web một cách dễ dàng, với java ta có thể viết các chương trình sử dụng
các giao thức TCP, UDP một cách dễ dàng, về lập trình web phía máy
khách java có công nghệ java applet, về lập trình web phía máy khách
java có công nghệ servlet/JSP, về lập trình phân tán java có công nghệ
RMI, CORBA, EJB, Web Service.

• Thông dịch
Các chương trình java cần được thông dịch trước khi chạy, một
chương trình java được biên dịch thành mã byte code mã độc lập với hệ
nền, chương trình thông dịch java sẽ ánh xạ mã byte code này lên mỗi nền
cụ thể, điều này khiến java chậm chạp đi phần nào.
3.2.3. Các kiểu ứng dụng Java
• Ứng dụng Applets
Applet là chương trình Java được tạo ra để sử dụng trên Internet
thông qua các trình duyệt hỗ trợ Java như IE hay Netscape. Applet được
nhúng bên trong trang Web. Khi trang Web hiển thị trong trình duyệt,
Applet sẽ được tải về và thực thi tại trình duyệt.
• Ứng dụng dòng lệnh (console)
Các chương trình này chạy từ dấu nhắc lệnh và không sử dụng giao
diện đồ họa. Các thông tin nhập xuất được thể hiện tại dấu nhắc lệnh.
• Ứng dụng đồ họa
Đây là các chương trình Java chạy độc lập cho phép người dùng
tương tác qua giao diện đồ họa.
• JSP/Servlet
Java thích hợp để phát triển ứng dụng nhiều lớp. Applet là chương
trình đồ họa chạy trên trình duyệt tại máy trạm. Ở các ứng dụng Web, máy
trạm gửi yêu cầu tới máy chủ. Máy chủ xử lý và gửi kết quả trở lại máy
trạm. Các Java API chạy trên máy chủ chịu trách nhiệm xử lý tại máy chủ
Hoàng Bảo Khánh – K49 CNTT
8
và trả lời các yêu cầu của máy trạm. Các Java API chạy trên máy chủ này
mở rộng khả năng của các ứng dụng Java API chuẩn. Các ứng dụng trên
máy chủ này được gọi là các JSP/Servlet. hoặc Applet tại máy chủ. Xử lý
Form của HTML là cách sử dụng đơn giản nhất của JSP/Servlet. Chúng
còn có thể được dùng để xử lý dữ liệu, thực thi các giao dịch và thường
được thực thi thông qua máy chủ Web.

• Ứng dụng cơ sở dữ liệu
Các ứng dụng này sử dụng JDBC API để kết nối tới cơ sở dữ liệu.
Chúng có thể là Applet hay ứng dụng, nhưng Applet bị giới hạn bởi tính
bảo mật.
• Ứng dụng mạng
Java là một ngôn ngữ rất thích hợp cho việc xây dựng các ứng dụng
mạng. Với thư viện Socket ta có thể lập trình với hai giao thức: UDP và
TCP.
• Ứng dụng nhiều tầng
Với Java ta có thể xây dựng phân tán nhiều tầng với nhiều hỗ trợ
khác nhau như : RMI, CORBA, EJB, Web Service.
• Ứng dụng cho các thiết bị di động
Hiện nay phần lớn các thiết bị di động như: Điện thoại di động,
máy trợ giúp cá nhân… đều hỗ trợ Java. Thế nên ta có thể xây dựng các
ứng dụng chạy trên các thiết bị di động này. Đây là một kiểu ứng dụng
khá hấp dãn, bởi vì các thiết bị di động này ngày càng phổ biến và nhu cầu
có các ứng dụng chạy trên đó, đặc biệt là các ứng dụng mang tính chất
giải trí như game…
3.3. Giới thiệu về công cụ lập trình Unity :
3.3.1. Giới thiệu chung :
 Nhà phát triển: Unity Technologies.
 Phiên bản mới nhất: Unity 4.0
 Được viết bởi ngôn ngữ: C++, C#.
 Phát triển Game cho các hệ điều hành: Windows, Mac OS X (tạo
và đóng gói), Wii, iPhone/iPad, Xbox 360, Androi, PS3(chỉ đóng gói; cần giấy
phép bổ sung cho từng nền tảng).
 Giấy phép: Độc quyền.
Hoàng Bảo Khánh – K49 CNTT
9
 Website www.unity3d.com

Unity là một 3D Game Engine, là một công cụ thiết kế Game dành cho
PC, Mac và nhiều hệ máy di động khác.
Unity được sự hỗ trợ của Just-In-Time Compilation (JIT), sử dụng thư
viện mã nguồn mở C++ Mono. Bằng việc sử dụng JIT, những Engine như
Unity có thể tận dụng lợi thế của tốc đọ biên dịch. Những đoạn code do
chúng ta viết sẽ được Unity biên dịch ra Mono trước khi nó được thực thi.
Điều này rất quan trọng cho Game để thực thi code vào những thời điểm cần
thiết trong suốt thời gian chạy (Runtime). Ngoài thư viện Mono, Unity cũng
tận dụng chức năng của những thư viện phần mềm khác vào chức năng của
nó, như Engine mô phỏng vật lý PhysicX của Nvidia, OpenGL và DirectX
cho kết xuất hinhf ảnh 3D, OpenAL cho âm thanh. Tất cả các thư viện này
được xây dựng thành những tính năng tự động hoặc công cụ trực quan vào
Unity, vì thế chúng ta không cần phải lo lắng về việc phải học thế nào để sử
dụng chúng một cách riêng lẻ.
Unity có một cộng đồng người dùng rất mạnh (rất lớn) luôn chia sẻ những
Plugins, công cụ của họ dưới hình thức gói phần mềm bổ sung.
Có thể sản xuất các trò chơi theo tiêu chuẩn chuyên nghiệp, xuất bản 3D
cho cả Mac và PC cũng như sở hữu riêng biệt một Web Player của riêng
mình, Unity là một trong những Game Engine có tốc độ phát triển nhanh
nhất. Unity cũng có phiên bản phát triển Game cho hệ máy Wii của Nintendo
va Iphone của Apple, có nghĩa là một khi chúng ta làm chủ được những vấn
đề cơ bản, không chỉ phát triển Game cho máy tính cá nhân mà chúng ta còn
có thể phát triển Game cho các hệ máy console và thiết bị di động.
3.3.2. Giao diện Unity :
Hoàng Bảo Khánh – K49 CNTT
10
h Hình 1 : giao diện Unity
3.3.3. Các thành phần trong Unity :
3.3.3.1. Assets:
Asset là những tài nguyên xây dựng nên một dự án Unity. Từ những tập

tin hình ảnh, mô hình 3D đến các tập tin âm thanh. Unity gọi các tập tin mà
chúng ta dùng để tạo nên trò chơi là tài sản (Asstets). Điều này lý giải tại sao tất
cả các tập tin, thư mục của các dự án Unity đều được lưu trữ trong một thư mục
có tên “Assets”.
3.3.3.2. Scenes:
Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn) nghĩa là một màn
chơi riêng biệt hoặc một khu vực hay thành phần có trong nội dung của trò chơi
(ví dụ như Game menu). Bằng cách tạo nên nhiều Scene cho trò chơi, chúng ta
có thể phân phối thời gian tải hoặc kiểm tra các thành phần khác nhau của trò
chơi một cách riêng lẽ.
Hoàng Bảo Khánh – K49 CNTT
11
3.3.3.3. Game Object:
Khi Assets được sử dụng trong Scene, chúng trở thành Game Object – một
thuật ngữ được sử dụng trong Unity (đặc biệt là trong mảng lập trình). Tất cả các
Game Object đều chứa ít nhất một thành phần là Transform. Transform là thông
tin về vị trí, góc xoay và tỉ lệ của đối tượng, tất cả được mô tả bởi bộ 3 số X, Y, Z
trong hệ trục tọa độ. Thành phần này có thể được tùy biến lại trong quá trình lập
trình nhằm thay đổi vị trí, góc quay và tỉ lệ của đổi tượng (so với đối tượng gốc)
qua các đoạn mã. Từ các thành phần cơ bản này, chúng ta sẽ tạo ra Game Object,
với các thành phần khác, bổ sung chức năng cần thiết để xây dựng nên bất kỳ
một thành phần nào trong kịch bản Game mà chúng ta đã thiết kế.
 Components:
Components có nhiều hình thức khác nhau. Chúng có thể xác định hành vi, cách
xuất hiện, … hay ảnh hưởng đến các khía cạnh khác nhau trong chức năng của
Game Object trong trò chơi.
Bằng cách “gắn” (attach) chúng vào trong Game Object, chúng ta có thể ngay lập
tức áp dụng tác động của chúng lên đối tượng. Những Components phổ biến
trong quá trình phát triển trò chơi đều được Unity hỗ trợ sẵn. Ví dụ như thành
phần Rigitbody và Collider : Rigidbody quy định khối lượng và áp dụng trọng

lực vào Object, nhưng không kiểm soát về sự va chạm của Object với vật khác.
Thay đó đó Box Collider sẽ quyết định việc này. Trong Unity Collider sẽ được
biểu thị bởi những đường kẻ màu xanh bao quanh vật, có rất nhiều loại Collider
với những hình dáng khác nhau từ hình hộp (Box Collider), hình viên nang
(Capsule Collider), hình tròn (Sphere Collider), theo hình dáng của Mesh (Mesh
Collider), … Các thành phần này khi gán vào đối tượng sẽ đảm nhận chức năng
phát hiện và xử va chạm cho đối tượng đó.
Hoàng Bảo Khánh – K49 CNTT
12
h Hình 2 : Collider theo các hình tương ứng
Collider không tự nhiên có, đối với những đối tượng cơ bản như Cube, Plant,
Sphere, Cylinder… là những đối tượng built-in của Unity, khi tạo ra, chúng được
Unity gán sẵn các Collider tương ứng, nhưng đối với một mô hình được nhập
(Import) từ bên ngoài, chúng ta phải tự gán cho chúng thông qua các lựa chọn ở
menu: Component -> Physics. Tùy vào hình dáng, kích thước và vai trò của
Object trong game mà chúng ta có những lựa chọn hay kết hợp các lựa chọn sao
cho phù hợp. Và không phải đối tượng nào cũng buộc phải có Collider, như đã đề
cập thì Colldier liên quan đến va chạm, liên quan đến vật lí, đây là những thành
phần sẽ ảnh hương rất nhiều đến FPS của game, cụ thể là càng có nhiều Collider
thì game sẽ càng nặng, nên chúng ta phải lưu ý chỉ nên attach Collider vào những
đối tượng mà chúng ta muốn chúng có thể tương tác, đồng thời nên hạn chế sử
dụng Mesh Collider – loại Collider dễ gây nặng game nhất.
Để tạo nên các yếu tố tương tác trong trò chơi, chúng ta sẽ sử dụng Script (mã
kịch bản), chúng cũng được xem như là một Components trong Unity.
 Script:
Được Unity xem như một Component, Script là một thành phần thiết yếu
trong quá trình phát triển trò chơi và đáng đề cập như một khái niệm “chìa khóa”.
Unity cung cấp cho chúng ta khả năng viết Script bằng cả 3 ngôn ngữ là
JavaScript, C# và Boo (một dẫn xuất của ngôn ngữ Python).
Unity không đòi hỏi chúng ta phải học làm thế nào để lập trình trong

Unity, nhưng hầu như chúng ta phải sử dụng Script tại mỗi thành phần trong kịch
bản mà chúng ta phát triển. Unity đã xây dựng sẵn một tập hợp đa dạng các
Hoàng Bảo Khánh – K49 CNTT
13
Class, Function, … mà chúng ta hoàn toàn có thể ứng dụng trong quá trình lập
trình trò chơi của mình.
Để viết Script, chúng ta sẽ làm việc với một trình biên tập Script độc lập
của Unity, hoặc với chương trình Mono Developer được tích hợp và đồng bộ với
Unity trong những phiên bản mới nhất gần đây.
Mono Developer là một IDE khá tốt để lập trình khi cung cấp đầy đủ các chức
năng của một IDE hoàn chỉnh tương tự Visual Studio. Mã nguồn viết trên Mono
Developer sẽ được cập nhật và lưu trữ trong dự án Unity.
h Hình 3 : Giao diện Mono Developer
Một số hàm sử dụng lập trình game cơ bản :
 Start() : làm nhiệm vụ khởi tạo khi đối tượng vừa được đặt vào màn hình
 UpDate() : làm nhiệp vụ cập nhật đối tượng liên tục trong vòng đời của game.
 LateUpDate() : làm nhiệm vụ theo dõi các đối tượng đã được cập nhật ở hàm
Update() : ví dụ : theo dõi sự di chuyển của ô tô.
 FixedUpDate() : Làm nhiệm vụ cập nhật và sử lý các hoạt động vật lý của đối
tượng.
 OnCollisionEnter() : làm nhiệm vụ phát hiện sự va chạm giữa collider của các
đối tượng trong game và sử lý va chạm đó the va chạm vật lý.
 OnTriggerEnter () : làm nhiệm vụ phát hiện sự va chạm giữa collider của các
đối tượng trong game và cho phép đối tượng đi xuyên qua nhau.
Hoàng Bảo Khánh – K49 CNTT
14
3.3.3.4. Prefabs:
Là một thành phần khá quan trọng, cho phép chúng ta tạo dựng các gói tài
nguyên mà có thể tận dụng lại ở mọi lúc mà chúng ta cần, Prefabs cho phép
chúng ta lưu trữ các đối tượng với những Components và những thiết đặt hoàn

chỉnh. Có thể so sánh với khái niệm MovieClip trong Adobe Flash, Prefabs chỉ
đơn giản là một đối tượng chứa (Container) mà chúng ta có thể đưa bất kỳ một
đối tượng hay dữ liệu mẫu nào mà chúng ta muốn tái sử dụng về sau.
3.3.3.5. Terrain :
Terrain còn gọi chung là địa hình bao gồm phần đất nền của môi trường
trong trò chơi cùng các đối tượng gắn liền như cây, cỏ, …
Unity cung cấp một công cụ hỗ trợ rất tốt khả năng này với tên gọi là
Terrains Tools cho phép chúng ta thiết kế địa hình với các công cụ vẽ dưới dạng
Brush có nhiều thông số tùy chỉnh để tạo hình và lát Texture cho địa hình. Cùng
với Terrain Tools là Tree Creator, một công cụ mạnh mẽ cho phép chúng ta tạo ra
cây cối với hình dạng, kích thước và kiểu cách đa dạng.
Giao diện : Hình 4 : giao diện terrain
 Các công cụ tạo địa hình trong Terrain :
Hoàng Bảo Khánh – K49 CNTT
15
 Raise and lower the terrain height : Công cụ tùy chỉnh độ cao cho địa hình, nâng
cao và hạ thấp địa hình theo ý muốn.
h Hình 5 : kết quả sử dụng Raise and lower the terrain height
 Set the terrain height : lấy độ cao địa hình.
Hoàng Bảo Khánh – K49 CNTT
16
 Smooths height : làm cho địa hình mịn hơn hoặc bằng phẳng tự
nhiên hơn.
 Paint the terrain texture
h Hình 6 : Paint the terrain texture
Dùng để tô mầu cho từng khu vực địa hình bằng cách chọn mẫu mầu như
như trong mục Textures, nhấn Edit Textures để thêm các mẫu mong muốn.
Hoàng Bảo Khánh – K49 CNTT
17
h Hình 6 : ảnh minh họa sử dụng công cụ Paint the terrain texture

 Place Trees :
h Hình 7 : Place Trees
h Hình 8 : ảnh kết quả thực hiện các bước trên
Hoàng Bảo Khánh – K49 CNTT
18
Cho phép ta thêm cây vào địa hình trên diện rộng, unity đã cung cấp sẵn một
số mẫu cây. Hoặc ta có tự tạo cây hoặc thêm những mẫu cây bằng cách vào mục
Edit Trees.
Ở mục settings : ta có thể tùy chỉnh độ rộng của tán lá, độ cao cây, … phù
hợp với yêu cầu.
 Place plants, stones and other small foilage:
h Hình 9 : giao diện công cụ Place plants, stones and other small foilage
Cũng tương tự như Place Trees nhưng với công cụ này ta có thể tạo được
các đối tượng nhỏ hơn, chi tiết hơn như các thảm cỏ, bãi cỏ, sỏi, …
h ảnh kết quả sử dụng Place plants, stones and other small foliage
Hoàng Bảo Khánh – K49 CNTT
19
 Setting for the terrain:
h
Cho phép ta chỉnh các thông về mật độ của cây, tốc độ và độ rộng ảnh
hưởng của gió …
Hoàng Bảo Khánh – K49 CNTT
20
3.3.4. Thanh công cụ :
3.3.4.1. Công cụ bàn tay ( Phím tắt Q)
Theo mặc định, công cụ cầm tay sẽ cho phép ta kéo thả và xem xung quanh
đối tượng.
3.3.4.2. Công cụ Translate ( phím tắt W)
Dùng để dịch chuyển các đối tượng theo các trục tọa độ.
h ảnh sử dụng công cụ Translate

3.3.4.3. Công cụ Rotate ( phím tắt : E)
Xoay đối tượng theo các trục.
h ảnh sử dụng công cụ Rotate
Hoàng Bảo Khánh – K49 CNTT
21
3.3.4.4. Công cụ Scale ( phím tắt R )
Điều chỉnh kích thước của đối tượng theo các trục tọa độ.
h ảnh sử dụng công cụ Scale
3.3.4.5. Công cụ điều khiển :
Thứ tự các nút là : Chạy trò chơi, tạm dừng trò chơi, qua màn tiếp theo
(nếu có).
3.3.4.6. Công cụ
Layers : Điều khiển các đối tượng được hiển thị ở cửa sổ Scene.
Layout : Điều chỉnh sự sắp xếp của các cửa sổ trong giao diện chính.
Hoàng Bảo Khánh – K49 CNTT
22
3.3.4.7. Cửa sổ Scene :
h
Scene là nơi hiển thị tất cả các GameObject trong Scene đang được
chỉnh sửa. Là Khung nhìn tĩnh của game. Sử dụng Scene để có cái nhìn
trực quan khi lựa chọn, sắp xếp vị trí trong không gian game cho các đối
tượng.
3.3.4.8. Cửa sổ Game :
h
Hoàng Bảo Khánh – K49 CNTT
23
Là nơi kiểm thử Game.
3.3.4.9. InSpetor :
h
Games làm từ Unity được ghép nối bởi vô số GameObjects. Mỗi

GameObjects có thể chứa bề mặt, code, âm thanh, các hiệu ứng vật lý, đồ họa
như ánh sáng. Cửa sổ Inspector hiển thị thông tin chi tiết về GameObject được
lựa chọn, bao gồm tất cả những thành phần phụ và thuộc tính của chúng. Tại cửa
sổ này có thể chỉnh sửa tất cả các thuộc tính của GameObjects được lựa chọn
trong Scene Views.
Tất cả các thuộc tính được hiển thị trên cửa số Inspector có thể được chỉnh
sửa trực tiếp, kể cả các biến trong code đính kèm mà không phải chỉnh sửa code.
Có thể vừa chạy game vừa chỉnh sửa code để tìm được hiệu quả tốt nhất cho
Hoàng Bảo Khánh – K49 CNTT
24
game. Có thể Kéo, thả các tài nguyên, GameObject hoặc Prefab vào trong
Inspector.
3.3.4.10. Project :
h
Nơi chứa tất cả các thư mục âm thanh, hình ảnh, kịch bản, cảnh , … sử
dụng trong game.
Cửa sổ Project được tích hợp nút Create, nút này cho phép chúng ta tạo
mới bất kì một Assets mới nào, ví dụ như Script, Prefabs, Materials, …
3.3.4.11. Hierarchy :
h
Chứa tất cả các đối tượng được sử dụng trong từng Scene.
Hoàng Bảo Khánh – K49 CNTT
25

×