Lý do chọn đề tài Hiện nay với sự phát triển của khoa học công nghệ, chiếc điện thoại di động không chỉ đơn thuần để liên lạc với nhau mà nó còn có thể chơi game, nghe nhạc, kết nối int
Trang 1TRÊN ĐIỆN THOẠI DI ĐỘNG
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Tin học
Người hướng dẫn khoa học PGS TS TRỊNH ĐÌNH THẮNG
Trang 2LỜI CẢM ƠN
Em xin chân thành cảm ơn PGS TS Trịnh Đình Thắng đã giúp đỡ
em hoàn thành khóa luận
Em xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin – trường Đại học sư phạm Hà Nội 2 đã truyền đạt vốn kiến thức quý báu cho em trong nghiên cứu đề tài và trong công việc sau này
Vì vốn kiến thức và khả năng của bản thân em còn hạn chế nên bài khóa luận còn nhiều thiếu sót, em mong nhận được ý kiến đóng góp của các thầy cô để em có thể hoàn thiện hơn bài khóa luận
Em xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2014 Sinh viên
Nguyễn Thị Kim Hoa
Trang 3LỜI CAM ĐOAN
Tên em là: NGUYỄN THỊ KIM HOA
Sinh viên lớp: K36 – Tin học, khoa Công nghệ thông tin, trường Đại học sư phạm Hà Nội 2
Em xin cam đoan:
1 Đề tài: “Tìm hiểu một số ngôn ngữ lập trình game trên điện
thoại di động” là sự nghiên cứu của riêng em, dưới sự hướng dẫn của thầy
giáo PGS.TS Trịnh Đình Thắng
2 Khóa luận hoàn toàn không sao chép của tác giả nào khác
Nếu sai em xin hoàn toàn chịu trách nhiệm
Hà Nội, tháng 5 năm 2014
Người cam đoan
Nguyễn Thị Kim Hoa
Trang 4MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Lịch sử phát triển của điện thoại di động 3
1.2 Hệ điều hành Android 12
1.3 Ngôn ngữ lập trình game 22
CHƯƠNG 2: MỘT SỐ NGÔN NGỮ LẬP TRÌNH GAME 23
2.1 Java 23
2.1.1 Java là gì? 23
2.1.2 Đặc trưng của Java 23
2.1.3 Máy ảo Java (JVM – Java Virtual Machine) 26
2.1.4 Bộ công cụ phát triển JDK (Java Development Kit) 30
2.1.5 Các ứng dụng Java 31
2.2 Objective-C 32
2.2.1 Objective-C là gì? 32
2.2.2 Lịch sử phát triển 32
2.2.3 Phương thức trong Objective-C 33
2.2.4 Category trong Objective-C 33
2.2.5 Protocol trong Objective-C 33
2.2.6 Selector trong Objective-C 34
2.2.7 Kế thừa trong Objective-C 34
2.2.8 Xử lý ngoại lệ 34
2.2.9 Quản lý bộ nhớ 34
2.3 C# 37
2.3.1 C# là gì? 37
Trang 52.3.2 Đặc điểm C# 40
2.3.3 Kiểu dữ liệu của C# 40
2.3.4 Lớp đối tượng trong C# 41
2.3.5 Kế thừa – đa hình 42
2.3.6 Cấu trúc trong C# 42
2.3.7 Thực thi giao diện 42
2.3.8 Mảng, chỉ mục 43
2.3.9 Xử lý ngoại lệ 43
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 44
3.1 Giới thiệu bài toán 44
3.2 Một số phương thức 45
3.2.1 Phương thức start Level 45
3.2.2 Phương thức tạo đường bay của viên đạn 46
3.2.3 Phương thức kiểm tra anchor xung quanh star 48
3.2.4 Phương thức tìm star cùng type với star 49
3.2.5 Phương thức Game Over 50
3.3 Thiết kế chương trình 53
3.3.1 Giao diện chính 53
3.3.2 Cửa hàng game 53
3.3.3 Bắt đầu game 54
3.3.4 Kết hợp các ngôi sao cùng màu 54
3.3.5 Kết thúc game 55
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 57
Trang 6DANH MỤC HÌNH
Hình 1.1 Chiếc điện thoại đầu tiên 4
Hình 1.2 Motorola DynaTAC 8000X 4
Hình 1.3 Nokia Mobira Senator 5
Hình 1.4 PDA Simon Personal Communicator 5
Hình 1.5 Motorola StarTAC 6
Hình 1.6 Nokia 6160 và Nokia 8260 7
Hình 1.7 Kyocera QCP6035 7
Hình 1.8 Handspring Treo 180 8
Hình 1.9 Danger Hiptop 8
Hình 1.10 BlackBerry 5810 9
Hình 1.11 Sanyo SCP-5300 9
Hình 1.12 Nokia N-Gate 10
Hình 1.13 Motorola Razt v3 10
Hình 1.14 Motorola Rokr 11
Hình 1.15 BlackBerry Pearl 11
Hình 1.16 Iphone 12
Hình 1.17 Các phiên bản của hệ điều hành Android 15
Hình 1.18 Android Market 19
Hình 1.19 Cấu trúc stack hệ thống Android 21
Hình 3.1 Form kích hoạt trò chơi 53
Hình 3.2 Form cửa hàng game 53
Hình 3.3 Form bắt đầu game 54
Hình 3.4 Form kết hợp các ngôi sao cùng màu 54
Hình 3.5 Form kết thúc game 55
Trang 7MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay với sự phát triển của khoa học công nghệ, chiếc điện thoại di động không chỉ đơn thuần để liên lạc với nhau mà nó còn có thể chơi game, nghe nhạc, kết nối internet, gửi mail, … Sự phát triển mạnh mẽ của các thiết bị di động thông minh smartphone, tablet, … yêu cầu các ứng dụng trên thiết bị di động phải đáp ứng được nhu cầu của người sử dụng Lập trình game trên điện thoại di động là một lĩnh vực thu hút rất nhiều bạn trẻ hiện nay
Nói đến lập trình chúng ta không thể không nhắc tới ngôn ngữ lập trình Hiện nay có rất nhiều ngôn ngữ lập trình và mỗi một ngôn ngữ lập
trình có một thế mạnh riêng Chính vì vậy em đã chọn đề tài Tìm hiểu một
số ngôn ngữ lập trình game trên điện thoại di động để làm khóa luận tốt
3 Nhiệm vụ nghiên cứu
- Tìm hiểu một số ngôn ngữ lập trình game thường dùng: Java,
Objective-C, C#
- Ứng dụng ngôn ngữ lập trình Java để xây dựng một game cho điện thoại
di động sử dụng hệ điều hành Android
Trang 84 Đối tượng nghiên cứu
Các ngôn ngữ lập trình game điện thoại di động: Java, Objective-C, C#
5 Phạm vi nghiên cứu
Lập trình game trên điện thoại thông minh và các ngôn ngữ lập trình game thường được sử dụng
6 Phương pháp nghiên cứu
Phương pháp nghiên cứu tự luận: Nghiên cứu thực trạng, đọc các tài
liệu, giáo trình có liên quan tới các ngôn ngữ lập trình game và lập trình game trên điện thoại di động thông minh
Phương pháp tổng kết kinh nghiệm: Qua việc nghiên cứu tài liệu,
giáo trình, rút ra kinh nghiệm lựa chọn ngôn ngữ lập trình phù hợp
Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp
hướng dẫn, các giảng viên bộ môn để hoàn thiện về mặt nội dung và hình thức của bài khóa luận
7 Cấu trúc bài khóa luận
Ngoài phần mở đầu, kết luận và hướng phát triển bài khóa luận có những nội dung sau:
Chương 1: Cơ sở lý thuyết – Chương này sẽ trình bày đôi nét về lịch
sử phát triển của điện thoại di động, hệ điều hành Android và ngôn ngữ lập trình game
Chương 2: Một số ngôn ngữ lập trình game – Chương này sẽ trình
bày rõ hơn về một số ngôn ngữ lập trình game điện thoại di động phổ biến hiện nay: Java, Objective-C, C#
Chương 3: Xây dựng chương trình ứng dụng – Xây dựng game
bằng ngôn ngữ Java cho điện thoại sử dụng hệ điều hành Android
Trang 9CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Lịch sử phát triển của điện thoại di động
Tiến sĩ Martin Cooper, cựu tổng giám đốc đơn vị hệ thống của Motorola, được coi là “cha đẻ” của thiết bị liên lạc di động cầm tay và cũng
là người đầu tiên thực hiện một cuộc gọi thông qua công cụ này
Ngày 3/4/1973, đứng trên một phố gần khách sạn Manhattan Hilton, Cooper quyết định thử thực hiện một cuộc gọi riêng trước khi đi lên gác tham dự một cuộc họp báo giới thiệu thiết bị Cú điện thoại ấy được ông gọi tới chính đối thủ cạnh tranh của mình: Joel Engel, Giám đốc Trung tâm thí nghiệm Bell Labs
Thật tuyệt vời, “hòn gạch” biết nói nặng hơn 1kg của Cooper đã hoạt động rất tốt, kết nối ông với trạm thu phát đặt trên nóc tòa tháp Burlington Consolidated (nay là tòa nhà Alliance Capital Building) ở New York, đồng thời liên lạc được với cả đường dây cố định Những người qua đường tỏ ra rất ngạc nhiên khi thấy một người đàn ông bấm bấm một công cụ gì đó, áp sát vào tai và rồi say sưa nói chuyện
Chiếc điện thoại Motorola Dyna Tac là chiếc điện thoại di động đầu tiên Chiếc điện thoại này có kích thước 22,86 x 12,7 x 4,44 cm, trọng lượng 1,13kg Chiếc điện thoại này không có màn hình nhưng thời lượng thoại của chiếc điện thoại này được 35 phút và thời lượng pin là 10 tiếng
Số bo mạch điện của chiếc điện thoại này là 30 Tính năng mà chiếc điện thoại này có thể thực hiện đó là nói, nghe và quay số
Trang 10Hình 1.1 Chiếc điện thoại đầu tiên
Chiếc điện thoại di động của tiến sĩ Cooper đã đặt nền móng cho sự
phát triển như vũ bão của điện thoại di động sau này
1.1.1 Motorola DynaTAC 8000X (1983)
Dù Martin Cooper thực hiện cuộc gọi đầu tiên vào năm 1973 nhưng phải một thập niên nữa thì chiếc điện thoại di động thương mại đầu tiên mới ra đời Motorola DynaTAC 8000X cho phép đàm thoại một giờ, bộ nhớ có thể lưu 30 số Trông bề ngoài thiết bị này không đẹp mắt nhưng lại
cho phép bạn vừa đi vừa nói chuyện ở bất kỳ đâu
Hình 1.2 Motorola DynaTAC 8000X
Trang 111.1.2 Nokia Mobira Senator (1982)
Hình 1.3 Nokia Mobira Senator
Nokia Mobira Senator trông giống hộp bom hơn điện thoại di động, nhƣng thiết bị hình hộp to đồ sộ này là điện thoại đầu tiên của Nokia Đƣợc giới thiệu năm 1982, Nokia Mobira Senator đƣợc thiết kế sử dụng trong xe
ô tô Nó nặng khoảng 10kg
1.1.3 Simon Personal Communicator (1993)
Hình 1.4 PDA Simon Personal Communicator
Trang 12Đây là chiếc smartphone đầu tiên trên thế giới Simon Personal Communicator là điện thoại đầu tiên có tính năng của liên minh IBM và BellSouth đƣợc ra mắt năm 1993 Nó là điện thoại kiêm máy tính, sổ địa chỉ, máy fax và e-mail Giá 900 USD
Trang 131.1.5 Nokia 6160 (1998) và Nokia 8260 (2000)
Hình 1.6 Nokia 6160 và Nokia 8260
Vào những năm 1990, các điện thoại hình thỏi kẹo của Nokia xuất hiện hàng loạt Nhưng Nokia 6160 và Nokia 8260 gây được sự chú ý của nhiều người Nokia 6160 có màn hình đen trắng, ăng-ten ngoài, thân 5,2 inch, nặng 6 ounce Nokia 8260 ra mắt năm 2000 ấn tượng hơn khi được tô điểm chiếc áo màu, dài 4 inch, nặng chỉ 3,4 ounce
1.1.6 Phần mềm Palm với Kyocera QCP6035 (2000)
Hình 1.7 Kyocera QCP6035
Nếu bạn là một trong những người hâm mộ điện thoại Treo sử dụng
Trang 14của công ty này thống lĩnh thị trường bán lẻ năm 2001 Với giá 400 USD
và 500 USD, đây là điện thoại dùng phần mềm Palm đầu tiên được phân
phối rộng rãi Sản phẩm có 8 MB bộ nhớ, màn hình trắng đen
1.1.7 Handspring Treo 180 (2001)
Hình 1.8 Handspring Treo 180
Trở lại khi Palm và Handspring còn là đối thủ Handspring đã khuấy động thị trường với sản phẩm Treo 180 gồm hai phiên bản: một với bàn pím QWERTY và một Treo 180g với thiết bị nhập liệu Graffiti Như Kyocera QCP6035, nó có màn hình đen trắng nhưng có 16MB bộ nhớ
1.1.8 Danger Hiptop (2002)
Hình 1.9 Danger Hiptop
Trang 15T-Mobile Sidekick từng được mệnh danh là sản phẩm của năm 2003 Mặc dù các khả năng đàm thoại của nó xoàng, nhưng là một trong những thiết bị đầu tiên cung cấp tính năng duyệt web, truy cập email và nhắn tin Hơn thế nữa, nó là người tiên phong về thiết kế xoay tròn
1.1.9 BlackBerry 5810 (2002)
Hình 1.10 BlackBerry 5810
BlackBerry 5810 được biết đến nhưng một thiết bị điển hình về các khả năng xử lý dữ liệu Đây là sản phẩm đầu tiên cung cấp các tính năng voice, GSM
1.1.10 Sanyo SCP-5300 (2002)
Hình 1.11 Sanyo SCP-5300
Trang 16Sanyo SCP-5300 PCS là "dế" đầu tiên có tính năng chụp ảnh đƣợc Sanyo và Sprint giới thiệu năm 2002 Ở độ phân giải cao nhất nó có thể
1.1.12 Motorola Razr v3 (2004)
Hình 1.13 Motorola Razt v3
Trang 17Điện thoại di động ngày càng mỏng và phong cách hơn, nhưng Motorola Razr v3 là sản phẩm đầu tiên gây ấn tượng về thiết kế thời thượng mỏng và nhẹ vào 2004 Ba năm sau "dế" này vẫn được đánh giá là một trong những điện thoại phổ biến nhất trên thị trường
1.1.13 Motorola Rokr (2005)
Hình 1.14 Motorola Rokr
Motorola Rokr – điện thoại di động kiêm máy nghe nhạc đầu tiên sử dụng phần mềm nghe nhạc của Apple Với thiết bị này, người dùng có thể thưởng thức các bài hát, bản nhạc từ dịch vụ iTunes
1.1.14 BlackBerry Pearl (2006)
Hình 1.15 BlackBerry Pearl
Trang 18Thiết kế mỏng, bàn phím SureType, tính năng chụp ảnh, nghe nhạc, xem video, hỗ trợ dịch vụ e-mail ấn tượng và nhiều khả năng đa phương tiện khác, BlackBerry Pearl trở thành viên ngọc quý của không ít người
1.1.15 Cách tân với Apple iPhone (2007)
Hình 1.16 Iphone
Sau những tháng chờ đợi, Apple khẳng định tháng 6 là thời điểm quan trọng để iPhone sẽ xuất hiện trên thị trường Đây là thiết kế cách tân với màn hình cảm ứng cảm ứng đa điểm sẽ mang lại một thế giới sinh động với e-mail bằng giọng nói, bàn phím "mềm" dạng Qwerty có thể đoán từ, trình duyệt web Safari, tích hợp camera2-megapixel iPhone là thiết bị gây tò mò nhất trong giới chơi điện thoại di động, dùng hệ điều hành Mac OS X Giá bán: 500 USD cho mẫu 4 GB, 600 USD cho mẫu 8 GB
1.2 Hệ điều hành Android
Android là một hệ điều hành dành cho thiết bị di động như smartphone, tablet hay netbook Android do Google phát triển dựa trên nền tảng Linux kernel và các phần mềm mã nguồn mở
Android là hệ điều hành mở mã nguồn chính duy nhất vớis 12 triệu dòng mã bao gồm 3 triệu dòng mã XML, 2.8 triệu dòng mã C, 2.1 triệu dòng Java và 1.75 triệu dòng C++
Trang 19Ban đầu nền tảng này được phát triển bởi Android Inc (sau đó được Google mua lại) và gần đây nó trở thành một trong những phần mềm đứng đầu của liên minh OHA (Open Handset Alliance - với khoảng 78 thành viên bao gồm cả nhà sản xuất, nhà phát triển ứng dụng, cho thiết bị di động mà dẫn đầu là Google)
Android được phát triển nhằm cạnh tranh với các hệ điều hành di động khác như iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm), Tính đến thời điểm này, Android đã trở thành nền tảng di động tăng trưởng nhanh nhất thế giới
1.2.1 Lịch sử phát triển của Android
Tháng 10/2003, Android (Inc) được thành lập tại Palo Alto, California, Hoa Kỳ do Andy Rubin (đồng sáng lập của Danger Inc), Rich Miner (đồng sáng lập của Wildfire Communications Inc và cựu phó chủ tịch công nghệ và tương lai ở Orange) và một số thành viên khác chủ trì, với mục đích để phát triển hay tạo ra các thiết bị di động thông minh hơn phục vụ các mục đích cho lợi ích con người
Bước đầu, hệ điều hành Android chỉ đơn thuần là phần mềm trên điện thoại di động
Tháng 8/2005, Google mua lại Android Inc với giá 50 triệu USD Các nhân viên chính của Android Inc, trong đó có Andy Rubin, Rich Miner vẫn tiếp tục làm việc tại công ty
Tại Google, nhóm kĩ sư do Rubin đứng đầu đã phát triển một nền tảng
di động dựa trên hạt nhân Linux Sau đó, họ đã giới thiệu cho 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
Trang 20Google cũng lên danh sách các thành phần phần cứng đáp ứng nền tảng và các đối tác phần mềm, đồng thời cam kết 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 Thời gian này, một loạt nguồn tin khẳng định Google sẽ sớm tham gia phát triển hệ điều hành riêng cho điện thoại di động
Tháng 9/2007, InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động
Tháng 11/2007, Liên minh thiết bị cầm tay mở rộng (Open Handset Alliance) với sự đồng thuận của Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile đã thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động
Android chính thức gia nhập Liên minh thiết bị cầm tay mã nguồn mở, đồng thời Google đã công vố việc họ bắt tay phát triển hệ điều hành mã nguồn mở cho thiết bị di động nhằm cạnh tranh với Symbian, Windows Mobile và các đối thủ khác
Hãng cũng giới thiệu sản phẩm Android đầu tiên là T-Mobile G1 Đây
là một thiết bị di động có hệ điều hành dựa trên nhân Linux phiên bản 2.6
Từ tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã nguồn mở Theo đó, các công ty thứ ba đƣợc phép thêm những ứng dụng của riêng của họ vào Android và bán chúng mà không cần phải hỏi ý kiến Google
Tháng 11/2008, Liên minh OHA ra mắt gói phát triển phần mềm Android SDK cho nhà lập trình
Trang 21Đến tháng 12/2008, có thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm có ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp và Vodafone Group Plc
Tháng 2/2009, 1 số công ty trong đó có Qualcomm và Texas Instruments đã có trong tay những con chip chạy các phiên bản đơn giản của hệ điều hành Android, mang đến những trải nghiệm hoàn toàn mới cho người dùng trên toàn thế giới
Đến năm 2010, số lượng smartphone nền tảng Android tăng trưởng mạnh mẽ Hàng loạt nhà sản xuất hàng đầu đã bắt tay sản xuất smartphone như Samsung, HTC, Motorola, Thậm chí, Android còn được coi là “cứu cánh” cho nhiều đại gia công nghệ bước sang một trang mới trong việc cải thiện doanh số, bán hàng có lãi sau một thời gian dài trì trệ, tiêu biểu là Motorola
1.2.2 Các phiên bản Android
Hình 1.17 Các phiên bản của hệ điều hành Android
Trang 22Android những thế hệ đầu tiên 1.0 ( 9/2008) và 1.1 ( 2/2009) chưa có tên gọi chính thức Từ thế hệ tiếp theo, mỗi bản nâng cấp đều được đặt với những mã tên riêng dựa theo các món ăn hấp dẫn theo thứ tự bảng chữ cái
từ “C-D-E-F-G-H-I” Hiện tại các phiên bản chính của Android bao gồm:
1.5 (Cupcake): Ra mắt tháng 4/2009 Phiên bản này có một số tính
năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị Bluetooth trong một khoảng cách nhất định, các widget và thư mục mới có thể cài đặt linh động trên màn hình chủ
1.6 (Donut): Ra mắt tháng 9/2009 Phiên bản này giúp nâng cao trải
nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu hỗ trợ màn hình độ phân giải WVGA
2.0/2.1 (Eclair): Ra mắt tháng 10/2009 Phiên bản này có sự cải thiện
rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth 2.1
2.2 (Froyo): Ra mắt tháng 5/2010 Phiên bản này chú trọng nâng cấp
tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi Một tính năng đáng chú
ý khác hỗ trợ chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị
Trang 23mở rộng bộ nhớ Một trong những smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là LG Optimus One
2.3 (Gingerbread): Ra mắt tháng 12/2010 Phiên bản này đã nâng cấp
đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video WebM và nâng cao tính năng copy–paste Cùng với phiên bản Gingerbread, Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng này là Google Nexus S
3.0 (Honeycomb): Ra mắt tháng 2/2011 Đây là phiên bản hệ điều
hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail, ) Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều màn hình home khác nhau, cho phép người dùng dễ dàng tùy biến giao diện nếu muốn
4.0 (Ice-cream sandwich): Ra mắt tháng 12/2011, là sự kết hợp giữa
Gingerbread và Honeycomb và sẽ chạy trên tất cả các thiết bị như điện thoại, máy tính bảng, máy tính xách tay, cải thiện sự ổn định của hệ điều hành và hiệu năng camera được cải thiện tốt hơn
4.1 (Jelly bean): Ra mắt tháng 7/2012 Phiên bản này có giao diện
mượt hơn, có trợ lý Google Now, ứng dụng camera và tìm kiếm giọng nói
4.4 (Kitkat): Ra mắt tháng 10/2013 Phiên bản này có khả năng in
không dây, có Framework mới cho giao diện Ứng dụng setting không còn
sử dụng giao diện nhiều panel
1.2.3 Tính năng mở của hệ điều hành 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ở
Trang 24Ví 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
1.2.4 Đặc điểm của hệ điều hành Android
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba Tất cả có thể được xây dựng để có thể truy cập bằng khả năng của một người cung cấp cho người sử dụng điện thoại với một dải rộng các ứng dụng và dịch vụ
Với các thiết bị xây dựng trên hệ điều hành Android, người dùng có thể hoàn toàn thích ứng với điện thoại đến lợi ích của họ Họ có thể trao đổi trên màn hình của điện thoại, những phong cách của dialer hoặc bất kỳ ứng dụng Họ thậm chí có thể hướng dẫn điện thoại của họ để sử dụng hình ảnh
ưa thích của họ xem các ứng dụng để xử lý xem tất cả các hình ảnh
Android phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo
Ví dụ một nhà phát triển có thể kết hợp thông tin từ các trang web với
dữ liệu trên điện thoại di động của một cá nhân như địa chỉ liên hệ của người dùng, lịch hoặc vị trí địa lý, … để cung cấp một trải nghiệm người dùng có liên quan hơn Với Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận cho họ một cơ hội để kết nối Android cung cấp truy cập đến một loạt các thư viện công cụ hữu ích
và có thể được sử dụng để xây dựng các ứng dụng phong phú
Trang 25Ví dụ Android cho phép các nhà phát triển để có được vị trí của điện thoại và cho phép các thiết bị để giao tiếp với nhau tạo điều kiện cho đồng đẳng rich-to-peer ứng dụng xã hội Ngoài ra, Android bao gồm một tập hợp đầy đủ công cụ đã được xây dựng từ mặt đất lên cùng với việc cung cấp nền tảng phát triển, với năng suất cao và cái nhìn sâu vào các ứng dụng của
họ
1.2.5 Kho ứng dụng Android Market
Kho ứng dụng Android Market ra mắt cùng thời điểm với nền tảng Android và cũng có sự tăng trưởng vượt bậc trong một thời gian ngắn Điều này là nhờ Android có một cộng đồng phát triển ứng dụng rất lớn (lên tới 180.000 nhà phát triển)
Tháng 9/2009, Android Market chạm mốc 10.000 ứng dụng và con số này tiếp tục tăng lên không ngừng
Hình 1.18 Android Market
Tháng 3/2010, Android Market này đạt mức 30.000 ứng dụng và chỉ sau đó 1 tháng, con số tiếp tục tăng lên 50.000 ứng dụng Đến tháng 10/2010 - 2 năm sau ngày ra mắt, Android Market đã đạt con số bước ngoặt 100.000 ứng dụng và trở thành một trong những kho ứng dụng di động lớn nhất
Trang 26Tính đến đầu tháng 5/2011, Android Market đã có 294.730 ứng dụng, trong khi App Store “đình đám” cũng chỉ có 381.062 ứng dụng Trong tháng 4, các thiết bị Android có thêm 28.000 phần mềm mới, trong khi con
số dành cho các thiết bị iOS là 11.000
Nếu tiếp tục duy trì tốc độ tăng trưởng như thời điểm hiện tại thì chỉ trong vòng 5 tháng tới, Android Market sẽ trở thành kho ứng dụng lớn nhất cho nền tảng smartphone Không những thế Android Market hiện đang dẫn dầu về số lượng ứng dụng miễn phí với khoảng 132.342 ứng dụng (trong khi ở App Store chỉ có khoảng 121.845 ứng dụng)
Đây chính là một trong nhiều yếu tố quan trọng để tạo nên sự hấp dẫn của nền tảng Android và giải thích lí do tại sao các thiết bị nền tảng này đã nhận được sự ủng hộ lớn của người tiêu dùng
1.2.6 Dalvik và máy ảo Dalvik
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị di động Android Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex) Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc độ xử lý Dalvik đã được thiết kế và viết bởi Dan Bornstein, người đã đặt tên cho nó sau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvik, nơi mà một số tổ tiên của ông sinh sống
Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java (Java Virtual Machine) nhưng thực tế thì hoàn toàn khác Khi nhà phát triển viết một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường Java Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực thi được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dex Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex bytecode "Dex" là từ viết
Trang 27tắt của "Dalvik executable" đóng vai trò như cơ chế ảo thực thi các ứng dụng Android
1.2.7 Android Emulator
Android SDK và Plugin Eclipse được gọi là một Android Deverloper Tool (ADT) Các Android coder sẽ cần phải sử dụng công cụ IDE (Integrated Development Enveronment) này để phát triển, debugging và testing cho ứng dụng Tuy nhiên, các coder cũng có thể không cần phải sử dụng IDE mà thay vào đó là sử dụng command line để biên dịch và tất nhiên là vẫn có Emulator như thường
Android Emulator được trang bị đầy đủ hầu hết các tính năng của một thiết bị thật Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB, camera và video, nghe phone, nguồn điện giả lập và bluetooth
Android Emulator thực hiện các công việc thông qua một bộ xử lý mã nguồn mở, công nghệ này được gọi là QEMU được phát triển bởi Fabrice Bellard
1.2.8 Kiến trúc của Android
Hình 1.19 Cấu trúc stack hệ thống Android
Trang 281.3 Ngôn ngữ lập trình game
Chúng ta có thể lập trình game bằng mọi ngôn ngữ Nhưng mỗi người
có một sở trường và thế mạnh riêng, chúng ta hãy tùy thuộc vào yêu cầu và thế mạnh của mình để lựa chọn ngôn ngữ để viết game Nhưng xu hướng hiện nay, một số ngôn ngữ hay dùng để viết game là:
Java: thường dùng để viết game cho Mobile – các dòng phone hỗ trợ
J2ME hoặc viết game cho Android, ít khi viết game cho PC
C#: khi nhắc tới C# ta có thể nghĩ ngay đến XNA và gắn liền với
thương hiệu Microsoft Dùng để viết game cho windows mobiles hoặc PC
Objective-C: dùng cho iOS như máy MAC, iPhone, Ipad
Javascript: dùng cho môi trường web
C/C++: với sự lâu đời cũng như được sự hưởng ứng rộng rãi từ hầu
hết các chương trình đào tạo đại học, C/C++ được xem là ngôn ngữ cơ bản nhất của mọi ngôn ngữ lập trình Bất kì một programmer đều phải ít nhất một lần đụng đến hai ngôn ngữ này C/C++ cũng khá được ưa chuộng trong lập trình game do khả năng thực thi trên nhiêu platform khác nhau: Windows, Linux, MacOS, Android, ipjone/ipad, Symbian, …
Trang 29CHƯƠNG 2: MỘT SỐ NGÔN NGỮ LẬP TRÌNH GAME
2.1 Java
2.1.1 Java là gì?
Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) được Sun Microsystems giới thiệu vào tháng 6 năm 1995 (hiện tại bị mua lại bởi Oracle năm 2009 - 2010)
Java là 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ú pháp của C và các đặc trưng hướng đối tượng của C++
Java là ngôn ngữ vừa biên dịch vừa thông dịch Đầu tiên mã nguồn được biên dịch công cụ JAVAC để chuyển thành dạng ByteCode Sau đó được thực thi trên từng loại máy cụ thể nhờ chương trình thông dịch Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (“Write Once, Run Anywhere” (WORA)) Chương trình phần mềm viết bằng Java
có thể chạy trên mọi nền tảng khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hớp hỗ trợ nền tảng đó
Ngày nay, Java được sử dụng rộng rãi để viết chương trình chạy trên Internet Nó là ngôn ngữ lập trình hướng đối tượng độc lập thiết bị, không phụ thuộc vào hệ điều hành Nó không chỉ dùng để viết các ứng dụng chạy đơn lẻ hay trong mạng mà còn để xây dựng các trình điều khiển thiết bị cho điện thoại di động, PDA,
2.1.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 Do vậy Java loại bỏ các đặc trưng phức tạp của C và C++ như thao tác con trỏ, thao tác định nghĩa chồng toán
Trang 30tử (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
Tính độc lập ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nhiều nền (phần cứng, hệ điều hành) khác mà không cần dịch lại
mã nguồn Tuy vậy cần có phần mềm máy ảo Java (JVM) hoạt động như một trình thông dịch tại máy thực thi
Môi trường phát triển của Java được chia làm hai phần: Trình biên dịch và trình thông dịch Không như C hay C++, trình biên dịch của Java chuyển mã nguồn thành dạng bytecode độc lập với phần cứng và có thể chạy trên bất kỳ CPU nào Nhưng để thực thi chương trình dưới dạng bytecode, tại mỗi máy cần phải có trình thông dịch của Java hay còn gọi là máy ảo Java Máy ảo Java chuyển bytecode thành mã lệnh mà CPU thực thi được
Mạnh mẽ
Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu Phải khai báo kiểu
dữ liệu tường minh khi viết chương trình Java kiểm tra lúc biên dịch và cả trong thời gian thông dịch vì vậy Java loại bỏ một số loại lỗi lập trình nhất định Java không sử dụng con trỏ và các phép toán con trỏ Java kiểm tra tất
cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo rằng các truy
Trang 31nhập đó không ra ngoài giới hạn kích thước Java kiểm tra sự chuyển đổi kiểu dữ liệu từ dạng này sang dạng khác lúc thực thi
Cơ chế bẫy lỗi của Java giúp đơn giản hóa quá trình xử lý lỗi và phục hồi sau lỗi
Bảo mật
Java cung cấp một môi trường quản lý thực thi chương trình, nó cho rằng không có một đoạn mã nào là an toàn cả Vì vậy Java không chỉ là ngôn ngữ lập trình thuần túy mà còn cung cấp nhiều mức để kiểm soát tính
an toàn khi thực thi chương trình
Ở lớp đầu tiên, dữ liệu và các phương thức được đóng gói bên trong lớp Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp Java không hỗ trợ con trỏ vì vậy không cho phép truy xuất bộ nhớ trực tiếp
Nó cũng ngăn chặn không cho truy xuất thông tin bên ngoài kích thước của mảng bằng kỹ thuật tràn và cũng cung cấp kỹ thuật dọn rác trong bộ nhớ Các đặc trưng này tạo cho Java an toàn tối đa và có khả năng cơ động cao Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn
và tuân theo các nguyên tắc của Java
Lớp thứ ba được đảm bảo bởi trình thông dịch Chúng kiểm tra xem bytecode có đảm bảo các quy tắc an toàn trước khi thực thi
Lớp thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống
Phân tán
Java có thể dùng để xây dựng các ứng dụng có thể làm việc trên nhiều phần cứng, hệ điều hành và giao diện đồ họa Java được thiết kế hỗ trợ cho các ứng dụng chạy trên mạng Vì vậy chúng được sử dụng rộng rãi như công cụ phát triển trên Internet, nơi sử dụng nhiều nền tảng khác nhau
Đa luồng
Chương trình Java đa luồng (Multithreading) để thực thi các công việc