Ngoài ra trò chơi cũng hỗ trợ cho người chơi chiến đấu vớinhau trên bản đồ, khi hai hoặc nhiều người chơi xuất hiện trong phạm vi hoạt động củanhau, bằng cách chạm vào biểu tượng của ngư
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
KHÓA LUẬN TỐT NGHIỆP
TRÒ CHƠI TRỰC TUYẾN TRÊN THIẾT BỊ DI ĐỘNG ANDROID
Giảng viên hướng dẫn: TS ĐÀM QUANG HỒNG HẢI
Sinh viên thực hiện:
HOÀNG TRỌNG QUỐC BẢO 08520026 TRẦN HỮU ĐỨC 08520094 Lớp: MẠNG MÁY TÍNH 03
Khóa: 2008-2013
TP Hồ Chí Minh, tháng 03 năm 2013
Trang 2Có thể nói một trong những ngành giải trí mang lại nhiều lợi nhuận nhất đó làngành game Game có mặt ở khắp mọi nơi, từ máy vi tính cho tới các thiết bị chơi gamechuyên dụng như XBOX360, Wii, Playstation… kể cả trên các thiết bị cầm tay như PSP,GameBoy, NintendoDS và đặc biệt là trên điện thoại di động Không có gì tiện dụng hơnmột chiếc điện thoại ngoài chức năng nghe gọi còn có thể chơi game để giải trí Với sự rađời của hệ điều hành Android, ngày càng xuất hiện nhiều mẫu điện thoại giá cả hợp lý màtính năng mạnh mẽ, cùng với việc các nhà làm game nhảy vào mảnh đất màu mỡ nàykhiến cho lĩnh vực game giải trí trên điện thoại phát triển hơn bao giờ hết Game chia ralàm hai loại chính là chơi trên máy (Offline) và chơi trực tuyến (Online) Trong đó nhómđặc biệt chú ý đến game trực tuyến vì khả năng kết nối cộng đồng, người chơi vừa có thểgiải trí vừa kết bạn vời người chơi khác, tạo ra các mối quan hệ xã hội.
Dựa trên tiêu chí đó, nhóm đã quyết định chọn đề tài “Trò chơi trực tuyến trênthiết bị di động Android” cho khóa luận tốt nghiệp lần này, với ước muốn xây dựng mộtsân chơi lành mạnh nhưng không kém phần hấp dẫn, thú vị cho mọi người
Cấu trúc khóa luận:
Khóa luận tốt nghiệp bao gồm các chương sau:
Chương 1: Giới thiệu tổng quan
Chương 2: Kiến trúc hệ điều hành Android – giới thiệu tổng quan về AndEngine, PHP và MySQL
Chương 3: Phân tích các chức năng của trò chơi “Pokemon Online”
Chương 4: Sản phẩm hoàn thiện: Trò chơi “Pokemon Online”
Chương 5: Kết luận
Trang 3Chúng em xin gửi lời cám ơn chân thành và sâu sắc tới Thầy TS Đàm QuangHồng Hải đã tận tình chỉ bảo, hướng dẫn và tạo điều kiện giúp chúng em hoàn thành đềtài khóa luận tốt nghiệp đúng tiến độ Trong thời gian thực hiện đề tài, thầy đã hỗ trợ chochúng em rất nhiều về mặt ý tưởng và tài liệu, trên hết thầy đã truyền đạt những kiến thứcquý báu, kinh nghiệm thực tiễn và thổi bầu nhiệt huyết, đam mê với ngành Công nghệthông tin vào trong chúng em Chúng em cũng xin chân thành cảm ơn quý thầy cô KhoaMạng máy tính và Truyền thông đã giảng dạy và truyền đạt cho chúng em những kinhnghiệm cần thiết hỗ trợ cho việc thực hiện đề tài lần này.
Chúng con cũng xin được gửi lời cảm ơn đến cha mẹ, những người đã sinh ra vànuôi dưỡng chúng con, cho chúng con ăn học thành tài, cũng như tạo mọi điều kiện tốtnhất có thể để chúng con làm tốt đề tài
Do kiến thức, kinh nghiệm và thời gian có hạn nên dù chúng em đã làm với tất cả
sự cố gắng và nhiệt tình của mình thì cũng khó có thể tránh khỏi những khiếm khuyết.Chúng em mong nhận được sự lượng thứ, thông cảm cho những thiếu sót đó và sẵn sàngghi nhận những ý kiến đóng góp quý giá của quý thầy cô để đề tài được hoàn thiện hơn
TP Hồ Chí Minh, tháng 03 năm 2013
Nhóm Sinh Viên thực hiện
Hoàng Trọng Quốc Bảo và Trần Hữu Đức
Trang 4(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……….
Trang 5(Của giảng viên phản biện)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……….
Trang 6LỜI CẢM ƠN
MỤC LỤC
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG BIỂU
Chương 1: GIỚI THIỆU TỔNG QUAN 1
1.1 Giới thiệu đề tài 1
1.2 Mục tiêu của đề tài: 2
1.3 Ý nghĩa thực tiễn của đề tài: 2
CHƯƠNG II: KIẾN TRÚC HỆ ĐIỀU HÀNH ANDROID - GIỚI THIỆU TỔNG QUAN VỀ ANDENGINE, PHP VÀ MYSQL 3
2.1 Giới thiệu chung về hệ điều hành Android 3
2.1.1 Giới thiệu sơ bộ về hệ điều hành 3
2.1.2 Kiến trúc hệ điều hành Android 4
2.1.3 Hệ thống tập tin trên hệ điều hành 8
2.1.4 So sánh giữa các hệ điều hành 9
2.1.5 Lịch sử phát triển và hướng phát triển trong tương lai: 11
2.2 Tổng quan về Andengine: 12
2.2.1 Giới thiệu: 12
2.2.2 Các tính năng quan trọng của Andengine: 12
2.2.3 So sánh giữa GLES 1 và GLES 2: 15
2.2.4 Ví dụ cách sử dụng Andengine: 17
2.3 Tổng quan PHP 20
2.3.1 Lịch sử PHP 20
2.3.2 Các tính năng ưu việt của PHP 21
2.4 Tổng quan MySQL 21
2.4.1 Giới thiệu về SQL và MySQL 21
Trang 7CHƯƠNG 3: PHÂN TÍCH CÁC CHỨC NĂNG CỦA TRÒ CHƠI “POKEMON
ONLINE” 25
3.1 Phân tích các chức năng chính của trò chơi 25
3.2 Phân tích cơ sở dữ liệu 30
3.3 Áp dụng vào đề tài, các thuật toán chính: 35
3.3.1 Áp dụng vào Server: 35
3.3.2 Áp dụng vào Client: 37
CHƯƠNG 4: SẢN PHẨM HOÀN THIỆN: TRÒ CHƠI “POKEMON ONLINE” .39 4.1 Cài đặt các ứng dụng cần thiết: 39
4.1.1 Tải và cài đặt Adt-bunddle-windows: 39
4.1.2 Tải key và sử dụng mapView của Google: 39
4.1.3 Tải và cài đặt máy chủ lên Shared Hosting: 39
4.2 Lập trình Game: 39
4.2.1 Thiết kế cơ sở dữ liệu: 39
4.3 Thiết kế giao diện 49
4.3.1 Hệ thống trình đơn điều khiển 49
4.3.2 Giao diện phòng chờ: 68
4.3.3 Thiết kế giao diện chiến đấu: 71
4.4 Thiết kế giao diện trang Web trò chơi 83
4.4.1 Giao diện trang chủ 84
4.4.2 Giao diện trận đấu 84
4.4.3 Giao diện người chơi 86
4.4.4 Giao diện xếp hạng 86
4.4.5 Giao diện thư viện 88
CHƯƠNG 5: KẾT LUẬN 89
5.1 Kết quả đạt được 89
5.2 Những hạn chế, thiếu sót còn tồn tại 89
5.3 Hướng phát triển 90
Trang 8DANH MỤC HÌNH ẢNH
Hình 2.1: Kiến trúc hệ điều hành Android 4
Hình 2.1: Biểu đồ mức độ phân phối các phiên bản hệ điều hành Android 16
Hình 3.1 : Biểu đồ phân cấp chức năng ở Server 30
Hình 3.2 : Biểu đồ phân cấp chức năng ở Client 31
Hình 3.3: Mô hình luồng dữ liệu mức ngữ cảnh 32
Hình 3.4 : Biểu đồ luồng dữ liệu mức đỉnh 32
Hình 3.5 : Biểu đồ luồng dữ liệu mức dưới đỉnh quản lý người dùng 33
Hình 3.6 : Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng trò chuyện 34
Hình 3.7 : Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng hiển thị 34
Hình 3.8 : Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng dẫn đường 35
Hình 3.9 : Quá trình xử lý ở server 36
Hình 4.1: Mô hình thực thể mối kết hợp 40
Hình 4.2: Giao diện đăng nhập tài khoản 49
Hình 4.3: Giao diện đăng kí tài khoản 50
Hình 4.4: Giao diện lấy lại mật khẩu 51
Hình 4.5: Giao diện phòng thi đấu 52
Hình 4.6: Giao diện hỏi đáp tham gia bàn chơi 53
Hình 4.8: Danh sách bạn bè của người chơi 54
Hình 4.9: Giao diện bản đồ thế giới 55
Hình 4.10: Giao diện bản đồ thế giới có người chơi khác 56
Hình 4.11: Giao diện thông tin quái vật trên bản đồ 57
Hình 4.12: Tương tác với người chơi trên bản đồ 58
Hình 4.13: Thông báo chờ phản hồi từ người chơi khác 58
Hình 4.14: Giao diện trò chuyện giữa hai người chơi 59
Hình 4.15: Giao diện dẫn đường tới người chơi 60
Trang 9Hình 4.17: Giao diện thông tin chi tiết của quái vật 62
Hình 4.18: Giao diện mua bán vật phẩm 63
Hình 4.19: Thông tin chi tiết vật phẩm cần mua 64
Hình 4.20: Giao diện vật phẩm của người chơi 65
Hình 4.21: Thông tin chi tiết vật phẩm cần bán 66
Hình 4.22: Giao diện bảng xếp hạng 67
Hình 4.23: Giao diện sàn đấu giữa hai người chơi 68
Hình 4.24: Giao diện phòng chờ của người quan sát 70
Hình 4.25: Giao diện trận đấu giữa hai quái vật 71
Hình 4.26: Giao diện trận đấu – bảng chọn chiêu thức 72
Hình 4.27: Thể hiện chiêu thức của người chơi 73
Hinh 4.28: Thể hiện chiêu thức của đối thủ 74
Hình 4.29: Thể hiện khi quái vật hết máu 75
Hình 4.30: Thể hiện danh sách vật phẩm sử dụng trong chiến đấu 76
Hình 4.31: Thể hiện sử dụng vật phẩm 77
Hình 4.32: Thể hiện danh sách bóng bắt quái vật 77
Hình 4.33: Thể hiện hoạt cảnh bắt quái vật 78
Hình 4.34: Giao diện trận đấu giữa hai quái vật mà người quan sát thấy 79
Hình 4.35: Thể hiện chiêu thức của người chơi thứ nhất qua mắt người quan sát 80
Hình 4.36: Thể hiện chiêu thức của người chơi thứ hai qua mắt người quan sát 80
Hình 4.37: Giao diện xem lại trận đấu 81
Hình 4.38: Giao diện thông tin chi tiết của trận đấu khi xem lại 82
Hình 4.39: Giao diện tổng quan trang chủ 83
Hình 4.40: Giao diện thông tin trận đấu 84
Hình 4.41: Thông tin chi tiết trận đấu 85
Hình 4.42: Giao diện thông tin người chơi trực tuyến 86
Hình 4.43: Giao diện xếp hạng theo tài sản 86
Hình 4.44: Giao diện xếp hạng theo danh vọng 87
Trang 10Hình 4.46: Giao diện thư viện hình ảnh 88 Hình 4.47: Giao diện tải trò chơi 88
Trang 11Bảng 4.1: Bảng dữ liệu tbl_player 41
Bảng 4.2: Bảng dữ liệu tbl_battle 42
Bảng 4.3: Bảng dữ liệu tbl_pokemon 42
Bảng 4.4: Bảng dữ liệu tbl_contact 42
Bảng 4.5: Bảng dữ liệu tbl_newstype 43
Bảng 4.6: Bảng dữ liệu tbl_battlemoves 43
Bảng 4.8: Bảng dữ liệu tbl_chat 44
Bảng 4.9: Bảng dữ liệu tbl_friend_list 44
Bảng 4.10: Bảng dữ liệu tbl_friend 44
Bảng 4.11: Bảng dữ liệu tbl_item 45
Bảng 4.12: Bảng dữ liệu tbl_player_inventory 45
Bảng 4.13: Bảng dữ liệu tbl_achievement 45
Bảng 4.14: Bảng dữ liệu tbl_admin 46
Bảng 4.15: Bảng dữ liệu tbl_card 46
Bảng 4.16: Bảng dữ liệu tbl_chatroom 46
Bảng 4.17: Bảng dữ liệu tbl_logcard 47
Bảng 4.18: Bảng dữ liệu tbl_stadium 47
Trang 12CHƯƠNG I: GIỚI THIỆU TỔNG QUAN
1.1 Giới thiệu đề tài:
Pokemon (pocket monster) là loại trò chơi điện tử chiến đấu theo lượt mà ngườichơi sẽ thu phục những con quái vật sau đó nhốt chúng vào trong quả cầu bắt quái vật(pokeball), và có thể gọi ngược trở ra để chiến đấu với các pokemon khác Pokemon đầutiên được tung ra trên hệ máy chơi game cầm tay nổi tiếng của hãng Nintendo :GameBoy, sau đó lần lượt được phát triển qua các phiên bản mới với hình ảnh đẹp hơn,cách chơi thú vị hơn và trên một số hệ máy khác như Nintendo DS, GameCube
Ý tưởng của đề tài là xây dựng game tương tự Pokemon trên điện thoại Androidnhưng theo kiểu Server,trong đó có phòng chơi, trong phòng chơi có nhiều bàn chơi, mộtbàn chơi cho phép hai người chơi trò chuyện và chiến đấu với nhau bằng các con quái vậtpokemon Những người chơi khác có thể vào bàn đấu để xem trực tiếp hai người chơi đấuvới nhau hoặc có thể xem lại toàn bộ trận đấu vào một thời điểm khác Trò chơi cũng cócác chức năng phổ biến của hầu hết các game trực tuyến khác là chat, kết bạn, mua bánvật phẩm và bảng xếp hạng Ngoài ra trò chơi còn đáp ứng nhu cầu thực tế ngày càng caocủa người chơi bằng cách cho họ trải nghiệm thực trên bản đồ Google Maps, trong đóngười chơi sẽ di chuyển trên bản đồ qua việc đi lại thực sự trên đường phố, khi đến vùng
có quái vật xuất hiện thì sẽ có tương tác cho phép người chơi chiến đấu với chúng bằngcách chạm vào biểu tượng trên màn hình Kiểu chơi game này đòi hỏi người chơi phải dichuyển thực sự, đem đến sự mới lạ và thú vị cho người chơi so với cách chơi gametruyền thống là ngồi một chỗ và điều khiển nhân vật trong game di chuyển, đồng thờiviệc người chơi đi lại ngoài thế giới thực cũng giúp họ vận động cơ thể như một bài tậpthể dục nhỏ, người chơi cũng có thể tranh thủ ra ngoài ngắm cảnh vật đường phố thay vìngồi trong nhà chơi game Ngoài ra trò chơi cũng hỗ trợ cho người chơi chiến đấu vớinhau trên bản đồ, khi hai hoặc nhiều người chơi xuất hiện trong phạm vi hoạt động củanhau, bằng cách chạm vào biểu tượng của người chơi khác ta có thể thách đấu với họ, vàcần phải có sự đồng ý của người đó thì mới bắt đầu chiến đấu
Trang 131.2 Mục tiêu của đề tài:
- Xây dựng một trò chơi kiểu Server có phòng chơi và bàn chơi, cho phép ngườichơi trò chuyện và chiến đấu với nhau
- Xây dựng trò chơi trên nền bản đồ Google Maps, đáp ứng yêu cầu thực tế củangười chơi
- Xây dựng hệ thống chat, kết bạn, bảng xếp hạng 10 người chơi có điểm sốdanh vọng cao nhất
- Xây dựng trang web tin tức, thông báo sự kiện, danh sách người chơi đangonline, các trận đấu đang diễn ra và cho biết kết quả trận đấu
- Xây dựng trang web quản lý của quản trị viên
1.3 Ý nghĩa thực tiễn của đề tài:
Tạo ra một trò chơi mà thông qua đó người dùng sử dụng để giải trí, thư giãn.Đồng thời người dùng có thể tương tác, trò chuyện với người chơi khác cũng như khámphá và kết bạn với những người chơi mới, mở rộng mối quan hệ xã hội của mình
Trang 14CHƯƠNG II: KIẾN TRÚC HỆ ĐIỀU HÀNH ANDROID - GIỚI THIỆU TỔNG QUAN VỀ ANDENGINE, PHP VÀ MYSQL
2.1 Giới thiệu chung về hệ điều hành Android:
1
2.1.1 Giới thiệu sơ bộ về hệ điều hành:
Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản 2.6 dànhcho các dòng điện thoại SmartPhone Đầu tiên được ra đời bởi công ty liên hợp Android,sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một hệ điều hành diđộng mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao trên thế giới
Hệ điều hành Android là một hệ điều hành rất mạnh, có tính bảo mật cao, hỗ trợđược nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi, NFC tương thích với nhiềuphần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như bàn phím, cảm ứng chạm và banh điềuhướng (trackball) Android là hệ điều hành di động nên có khả năng kết nối cao với cácmạng không dây Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương tiệntruyền thông giải trí, hoạt hình cũng như trình diễn các khả năng đồ họa khác cực tốt, làtiền đề để phát triển các ứng dụng có giao diện phức tạp chẳng hạn như là các trò chơiđiện tử
Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần Androidđược tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới.Chẳng hạn như theo một đánh giá thì Android phiên bản 2.2 hoạt động nhanh hơn bản 2.1tới 450% Hiện nay, phiên bản mới nhất 4.2 ra đời năm 2012 và đang tiếp tục được cậpnhật
Trang 152.1.2 Kiến trúc hệ điều hành Android:
Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (Phiên bản2.6), tầng Libraries & Android runtime , Tầng Application Framework và trên cùng làtầng Application
Hình 2.1: Kiến trúc hệ điều hành Android
2.1.2.1 Tầng hạt nhân Linux (Linux Kernel layer):
Hệ điều hành Android được phát triển dựa trên hạt nhân linux, cụ thể là hạt nhânlinux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt động củađiện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồmquản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiệnbảo mật (security), quản lý tiến trình (process)
Trang 16Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nângcấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế
về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng khôngdây
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điềuhành Android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạybằng máy ảo Dalvik do Google phát triển
Trang 17Tầng này xây dựng bộ công cụ, các phần tử ở mức cao để các lập trình viên có thểnhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khả năng sử dụng chung đểtiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có hai cái lợi:
- Với các hãng sản xuất điện thoại : Có thể tùy biến để phù hợp với cấu hìnhđiện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, phong cách hợp thịhiếu người dùng Vì thế nên tuy cùng chung nền tảng Android mà điện thoạicủa Google có thể khác hẳn với Motorola, HTC, T-Mobile, Samsung
- Với lập trình viên : Cho phép lập trình viên có thể sử dụng các API ở tầng trên
mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên
tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc.Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch
vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao Giới thiệu một số thành phần của tầng này :
- Activity Manager : Quản lý vòng đời của một ứng dụng cũng như cung cấpcông cụ điều khiển các Activity
- Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc như gọi điệnthoại
- XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực
- Location Manager : Cho phép xác định vị trí của điện thoại thoại dựa vào hệthống định vị toàn cầu GPS và Google Maps
- Window Manager : Quản lý việc xây dựng và hiển thị các giao diện ngườidùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng
- Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tin nhắn,
có e-mail mới )
- Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các tậptin hình ảnh, âm thanh, giao diện, chuỗi kí tự (Những thành phần không đượcviết bởi ngôn ngữ lập trình)
Trang 182.1.2.5 Tầng Application:
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như :
- Các ứng dụng cơ bản, được cài đặt dính liền với hệ điều hành là gọi điện thoại(phone), quản lý danh bạ (Contacts), duyệt web (Web Browser), nhắn tin(SMS), lịch làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Maps),quay phim chụp ảnh (camera)
- Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các tròchơi (Game), từ điển
Các chương trình có các đặc điểm là :
- Viết bằng Java, phần mở rộng là apk
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựnglên để phục vụ cho nó Nó có thể là một Active Program : Chương trình cógiao diện tương tác với người sử dụng hoặc là một background : chương trìnhchạy nền hay là dịch vụ
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thờiđiểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứngdụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó
có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn
- Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạnkhi sử dụng tài nguyên, cấu hình phần cứng và hệ thống
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di độngkhác, Android cho phép một ứng dụng của bên thứ ba được phép chạy nền.Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dụngquá 5~10% công suất CPU, điều đó nhằm để tránh độc quyền trong việc sửdụng CPU
- Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu
2.1.3 Hệ thống tập tin trên hệ điều hành:
Trang 19Trong phạm vi một bài tìm hiểu về hệ điều hành, chúng em chỉ xin tìm hiểu rõ mộtvấn đề của hệ điều hành Android đó là vấn đề quản lý hệ thống tập tin Phần này có điểmthuận lợi để tìm hiểu đó là vì được phát triển từ nhân linux nên hệ thống tập tin trênAndroid cực kỳ giống hệ thống tập tin trên linux như là về cách tổ chức, những quyềnhạn của người sử dụng lên tập tin
2.1.3.1 Tổng quan về hệ thống tập tin trên Android.
Trong Android, các tập tin được tổ chức thành các thư mục, theo mô hình phâncấp Tham chiếu đến một tập tin bằng tên và đường dẫn Các câu lệnh thao tác tập tin chophép thực hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục cùng với cácthư mục con chứa trong nó…
Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phảy để đặt têncho tập tin Không được bắt đầu tên một tập tin bằng dấu chấm hay chữ số Những ký tựkhác như ‘/’, ‘?’, ‘*’, là ký tự đặc biệt được dành riêng cho hệ thống Chiều dài của têntập tin có thể tới 256 ký tự Trong hệ điều hành Android có sự phân biệt tên tập tin chữhoa và chữ thường, điều đó có nghĩa là trong cùng một thư mục có thể tồn tại những tậptin có tên là File, FILE, file và chúng là những tập khác nhau
Tất cả các tập tin trong Android có chung cấu trúc vật lý là chuỗi các byte (bytestream) Cấu trúc thống nhất này cho phép Android áp dụng khái niệm tập tin cho mọithành phần dữ liệu trong hệ thống Thư mục cũng như các thiết bị được xem như tập tin.Chính việc xem mọi thứ như các tập tin cho phép Android quản lý và chuyển đổi dữ liệumột cách dễ dàng Một thư mục chứa các thông tin về thư mục, được tổ chức theo mộtđịnh dạng đặc biệt Các thành phần được xem như các tập tin, chúng được phân biệt dựatrên kiểu tập tin: tập tin thường (ordinary file), tập tin thư mục (directory file), tập tinthiết bị (character device file) và tập tin khối (block device file)
Trang 202.1.3.2 Các kiểu tập tin trên Android:
Trong nhiều hệ điều hành như Windows, người ta phân biệt rõ tập tin (file) và thưmục (folder hay directory) là hai thành phần khác hẳn nhau Tuy nhiên trên hệ điều hànhAndroid (cũng như linux) thì coi thư mục cũng là tập tin và nó là một loại tập tin đặc biệt
2.1.4 So sánh giữa các hệ điều hành:
2.1.4.1 So sánh giữa hệ điều hành di động và hệ điều hành trên Desktop:
- Giống nhau về bản chất hệ điều hành, những thành phần lõi hệ điều hành
- Khác nhau :
Hệ điều hành di động : hoạt động trên các thiết bị nhỏ gọn, hạn chếnhất là về vấn đề năng lượng Pin thì có hạn, vì thế tất cả các thànhphần trên thiết bị đều phải tối ưu để tiết kiệm pin, điều đó nảy sinhnhiều mâu thuẩn với nhu cầu sử dụng của người dùng
Màn hình càng lớn và càng sáng thì sẽ tốn điện càng nhiều
Bộ nhớ lớn thì chi phí về điện cũng sẽ cao
Bộ vi xử lý càng nhanh thì càng tốn điện
Điều đó chưa kể đến việc thiết bị di động thì phải nhỏ gọn, nhẹ nhàng, vì vậy càng
đè nặng việc phải tối ưu phần cứng Khi đó hệ điều hành di động cũng có trách nhiệmphải tối ưu hoạt động của mình để tiết kiệm năng lượng một cách tối đa
- Nó phải quản lý các ứng dụng không để các ứng dụng chạy chiếm quá nhiềutài nguyên, tránh sự độc quyền, xung đột, tranh chấp tài nguyên giữa các ứngdụng trong khi các hệ điều hành chạy Desktop thì ít chú ý hơn Hệ điều hành diđộng luôn có bộ công cụ quản lý điện năng sử dụng trong máy, trong nhữngtình huống cần thiết thì hệ thống sẽ tự tắt những ứng dụng không cần thiết đểduy trì các chương trình cần thiết hơn hoạt động
- Đa số các hệ điều hành trên Desktop đều cho phép nhiều ứng dụng chạy đồngthời (đa nhiệm) và khá tự do Trong khi đó, các hệ điều hành chạy trên di động
Trang 21thường không cho phép chạy đa nhiệm, hoặc có đa nhiệm thì các ứng dụng bịgiới hạn khá nhiều.
- Việc hiển thị giao diện trên một khung hình nhỏ cũng là điều khó khăn hơn sovới hệ điều hành chạy trên Desktop, thường thì trên hệ điều hành di động gầnnhư không có giao diện cửa sổ cho phép nhiều ứng dụng cùng hiển thị một lúc
mà chỉ là một giao diện mà trên đó mỗi thời điểm chỉ hiển thị một giao diệncủa một ứng dụng mà thôi
- Hệ điều hành di động phải có khả năng hoạt động liên tục không ngừng nghỉ
để đảm bảo liên lạc, đảm bảo kết nối của thiết bị tới mạng không dây cần kếtnối trong khi vẫn di chuyển Vì thế cần được thiết kế đặc biệt hơn so với hệđiều hành trên Desktop
2.1.4.2 So sánh hệ điều hành Android với các hệ điều hành di động khác:
- Giống nhau : Đều là hệ điều hành di động nên mang đầy đủ bản chất của hệđiều hành di động nói chung (đã đề cập ở trên)
- Khác nhau :
Android là hệ điều hành mã nguồn mở và miễn phí trong khi các hệđiều hành di động còn lại đều là nguồn đóng và có phí (khi một hãngthứ hai sử dụng)
Android được phát triển từ nhân linux do đó nó có thể chạy tốt trênnhiều dòng điện thoại khác nhau Có độ tương thích cao với cácloại phầnn cứng khác nhau nhiều hơn so với các hệ điều hành diđộng còn lại
Các ứng dụng chạy trên Android được viết bằng Java, trong khi đóứng dụng trên các hệ điều hành khác chủ yếu là viết bằngC/C++/Object C Ngay cả Symbian có hỗ trợ Java thì cũng khác sovới Android, trong khi hệ điều hành Android sử dụng máy ảo Java làDalvik VM do chính Google phát triển thì Symbian lại sử dụngmáy ảo Java là J2ME của Sun
Trang 222.1.5.2 Hướng phát triển trong tương lai:
Hiện tại thì Android đang rất phát triển, hướng đi quan trọng nhất hiện giờ 2013) là Google sẽ tích hợp điện toán đám mây trên hệ điều hành Android và bảo mật dữliệu
Trang 23(15-1-2.2 Tổng quan về Andengine:
2.2.1 Giới thiệu:
Andegine là engine OpenGL mã nguồn mở dành cho thiết kế game trên nền tảngAndroid, được thiết kế bởi Nicolas Gramlich Điểm nổi bật nhất của Andegine so với cácengine khác là nó đơn giản, dễ sử dụng, tiện dụng ngay với cả những người không cónhiều kinh nghiệm với OpenGL Do đó các lập trình viên mới tiếp xúc với OpenGLnhưng có kinh nghiệm với ngôn ngữ Java vẫn có thể tạo ra những phần mềm ứngdụng/trò chơi đặc sắc, độc đáo
2.2.2 Các tính năng quan trọng của Andengine:
- Tự động cân bằng kích cỡ màn hình (scaling) cho các thiết bị khác nhau vớicác độ phân giải khác nhau
- Hỗ trợ cảm ứng đa điểm (multi touch)
- Hỗ trợ tương tác vật lý Box2D (physic extension –Box2D) – tính năng nổi bậtcủa trò chơi AngryBirds
- Bản đồ khung (TiledMap) được hỗ trợ theo chuẩn TMX
- Hệ thống hạt/mảnh (Particle System)
- Phần mở rộng hình nền động (live wallpaper extension)
- Giao diện sử dụng trực quan, tốc độ nhanh
- Cộng đồng người dùng đông đảo, được hỗ trợ nhanh chóng nếu có thắc mắc
- Có nhiều phần mở rộng (extension) cho engine
- Nhiều ví dụ, hướng dẫn sử dụng (example project, snippet, tutorial)
Trang 242.2.2.2 Khuyết điểm của Andengine:
- Gần như không có tài liệu hướng dẫn chính thức nào
- Đôi lúc lại chậm hơn so với các engine khác
Tuy nhiên thiếu sót về tài liệu hướng dẫn được bù đắp bằng sự hỗ trợ đắc lực của cộng đồng người dùng đông đảo với rất nhiều ví dụ lớn nhỏ, phần mềm (project) và tính đơn giản của bản thân engine
2.2.2.3 Tương tác vật lý (Box2D Physics Engine):
AndEngine tích hợp thư viện mã nguồn mở JBox2D – bản chuyển thể của hệthống vật lýBox2D physics engine Nó được dùng trong các ứng dụng tương tác vật lýthời gian thực giữa các đối tượng theo các hướng sau:
- Giả lập tính chất vật lý của vật thể rắn
- Xếp chồng các vật thể lên nhau
- Trọng lực
- Đơn vị xác định người dùng (user – defined unit)
- Các thể loại giải đố có tương tác (như đẩy thùng)
2.2.2.4 Ý tưởng trò chơi viết bằng Andengine:
Cách giải thích đơn giản nhất về cách tạo ra một trò chơi là dựng một bộ phim Đểhoàn thành ra một cuốn phim, người đạo diễn cần có máy quay phim (camera), các cảnhquay (scene), nhân vật, nội dung, hiệu ứng hình ảnh, âm thanh … và một trò chơi cũng cócác yếu tố chính tương tự
Trang 25- Máy quay (Camera): là góc nhìn của trò chơi, là phần muốn thể hiện cho ngườidùng thấy Camera là một phần không thể thiếu đối với sự thành công của mộttrò chơi.
- Cảnh quay (Scence): cũng như một bộ phim, trò chơi cần có các cảnh được bốtrí sẵn, cảnh quay mà các nhân vật sẽ thực hiện những hành động của mình.Cảnh quay trong trò chơi được thay đổi bởi người chơi
- Lớp (Layer): là một lớp hình ảnh Những cảnh quay được tạo ra bởi nhiều lớphình ảnh khác nhau Chúng được xếp chồng lên nhau và “lật” để tạo ra hiệuứng (giống như vẽ từng hình trong sách rồi lật nhanh) Layer có thể tạo ra hiệuứng 2.5D bằng cách sắp xếp tốc độ thay đổi của layer, các layer gần thay đổi/dichuyển nhanh hơn các layer ở xa
- Nhân vật (Sprite): là đại diện cho các vật thể trong trò chơi, cách hoạt độngtương tự như diễn viên trong một bộ phim Nhân vật có thể có chuyển độnghoặc không, nhưng chúng thường hay di chuyển theo cảnh quay trong quá trìnhtrò chơi đang chạy Hình ảnh nhân vật thường được tải vào từ một bức ảnh lớnchứa nhiều ảnh nhân vật nhỏ gọi là bảng nhân vật (sprite sheet)
- Vật thể (Entity): là tất cả những gì được vẽ lên màn hình, bao gồm nhân vật,cảnh nền, vật chắn, đường thẳng… Tất cả các vật thể có thuộc tính như màusắc, góc xoay (rotation), kích thước co giãn (scale) và tọa độ hiển thị đều có thểđiều chỉnh được bằng bộ điều chỉnh (Modifier)
- Bộ điều chỉnh (Modifier): điều chỉnh thuộc tính của vật thể Có thể điều chỉnhthuộc tính của bất kỳ vật thể nào ngay lập tức hoặc từ từ theo thời gian địnhsẵn Trong trò chơi ta sẽ thường xuyên sử dụng bộ điều chỉnh để tạo ra hiệuứng của các vật thể
- Ảnh bề mặt (Texture): là một hình ảnh hai chiều được vẽ lên vật thể để thểhiện chúng Rất nhiều bộ thư viện mở OpenGL được xây dựng dựa trên cách
sử dụng Texture
- Miền hình ảnh (Texture Region): một texture chứa một bức ảnh hoàn chỉnh, vàmột miền hình ảnh thể hiện một vùng nhỏ của texture đó
Trang 26- Công nghệ nền (Engine): là phần sẽ chạy các cảnh quay (scene) Nó giữ vai tròthông báo cho các hiệu ứng chuyển động (animation) và bộ điều chỉnh biết khinào thì cập nhật hình ảnh đang thể hiện, dựa theo cách vẽ hiện tại, nhập liệungười dùng (chạm, nhấn phím, cảm ứng), và quản lý toàn bộ quá trình chơi tròchơi Engine tương tự như nhà sản xuất / đạo diễn của bộ phim, chỉ đạo diễnxuất của diễn viên.
- Lớp BaseGameActivity: kế thừa từ lớp Activity của Android, là lớp cơ bản củamỗi cảnh quay trong trò chơi Nó làm tất cả những công việc chung của cáccảnh quay, thiết lập engine của trò chơi, tuân theo vòng đời của một Activity(Android Activity Lifecycle) và bật cảm ứng
- Bộ kết nối vật lý (Physics Connector): về cơ bản Andengine đã có hệ thống vật
lý cơ bản trong đó, nhưng hệ thống vật lý Box2D Physics Engine làm mở rộngkhả năng này lên gấp nhiều lần Andengine được kết nối với Box2D bằng bộkết nối vật lý Nếu trò chơi không sử dụng Box2D thì sẽ không có bộ kết nốivật lý
2.2.3 So sánh giữa GLES 1 và GLES 2:
AndEngine đã được phát triển thành hai phiên bản (hai nhánh) là GLES 1 vàGLES 2 GLES 1 hiện tại đã bị ngưng phát triển GLES 2 là phiên bản mới nhất và vẫncòn đang tiếp tục phát triển
Sự khác biệt:
- GLES 2 yêu cầu sử dụng hệ điều hành Android >= 2.2
- GLES 2 trong một số trường hợp chậm hơn GLES 1
- GLES 2 vẫn còn đang được tiếp tục phát triển
Chọn lựa:
GLES 2 là ưu tiên hàng đầu vì nó vẫn được tiếp tục phát triển nên sẽ có nhiều tínhnăng được phát triển vào thời gian tới Tuy nhiên nếu phần mềm muốn được sử dụngrộng rãi thì GLES 1 là lựa chọn tốt hơn vì nó hỗ trợ tất cả các hệ điều hành android
Trang 27Hình 2.1: Biểu đồ mức độ phân phối các phiên bản hệ điều hành Android
Khác biệt về khả năng đáp ứng (performance):
Như đã nêu ở trên GLES 2 chạy chậm hơn trong một số trường hợp so vớiGLES 1 Tiến hành ba lần kiểm tra GLES1 và GLES2 trên điện thoại Samsung Galaxy Sbằng cách tạo ra 1500 vật thể với chuyển động và xoay ta có kết quả sau về tỉ lệ khunghình mỗi giây (frame per second – fps):
Trang 282.2.4 Ví dụ về cách sử dụng Andengine:
2.3.4.1 Nhân vật (sprite):
a Tạo nhân vật:
Sprite yourSprite =new Sprite(x, y, textureRegion, vertexBufferObjectManager);
- x, y là toạ độ xuất hiện
- textureRegion: miền hình ảnh của nhân vật
- vertexBufferObjectManager: tùy chọn vùng nhớ đệm của nhân vật
Trang 29Đôi lúc cần phải chạy một đoạn code vào một thời điểm nhất định, như khi bắt đầuhoặc kết thúc của bộ điều chỉnh, để làm vậy chỉ cần nạp chồng (override) một sốphương thức và tạo ra bộ điều chỉnh mới Ví dụ như sau:
super.onModifierStarted(pItem);
// Đoạn code thực thi sau khi bộ điều chỉnh chạy
}
@Override
protectedvoid onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem){
super.onModifierFinished(pItem);
// Đoạn code thực thi sau khi bộ điều chỉnh kết thúc
})};yourEntity.registerEntityModifier(yourModifier);
2.2.4.3 Cảnh nền (Background):
AndEngine cho phép tạo ra nhiều loại cảnh nền khác nhau một cách rất đơn giản.Một số cảnh nền phổ biến:
a Cảnh nền màu (Color Background):
private void createBackground() {
scene.setBackground(new Background(Color.RED));}
Trong ví dụ này, cảnh nền sẽ chỉ có một màu đỏ
b Cảnh nền thị sai (Parallax Background):
private void createBackground() {
ParallaxBackground background =new ParallaxBackground(0,0,0); background.attachParallaxEntity(new ParallaxEntity(
Trang 300,new Sprite(0,0,background_region, vbo))); scene.setBackground(background);}
Đây gọi là cảnh nền thị sai vì nó sẽ luôn di chuyển theo camera
2.2.4.4 Cảnh quay (Scene):
Cảnh quay là vật chứa chính của mọi đối tượng được tạo ra ở màn hình Mộtcảnhquay chỉ có thể chứa một số lượng lớp (layer) nhất định, mà mỗi cái chứa được mộtlượng vật thể cố định hoặc động Đồng thời cảnh quay có một số lớp con nhưCameraScence, HUD, MenuScence luôn được cố định ở một vị trí trên cảnh quay cho dùcamera có ở góc quay nào
Bởi vì mỗi một cảnh quay đều có cảnh nền của nó, mặc định là trắng, mà để hiện
ra một cái pop-up là hai cảnh quay chồng lên nhau nên ta cần tắt cảnh nền củacảnh quay con ( là cảnh quay nằm phía trước)
2.2.4.5 Xử lý sự kiện chạm:
Chúng ta có thể dễ dàng xử lý sự kiện chạm bằng cách nạp chồng phương thứconAreaTouched Trong ví dụ sau đây ta tạo ra một nhân vật, đăng ký sự kiện chạm trênnhân vật và xử lý sự kiện mỗi lần người dùng chạm vào nhân vật:
final Sprite sprite = new Sprite(400, 420, 100, 50, vbo) {
Trang 31};scene.registerTouchArea(sprite);scene.attachChild(sprite);
Ta cần phải đăng ký sự kiện với cảnh quay, nếu không sẽ không có gì xảy ra khichạm vào nhân vật Trong ví dụ này chúng ta sử dụng điều kiện isActionUp, có nghĩa làkhi người dùng chạm vào nhân vật, sau đó nhấc tay lên thì đoạn code mới được thực thi
2.3.1 Lịch sử PHP:
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do RasmusLerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịchbản Perl (Perl Script) để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trênmạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cầnđến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thểtruy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơngiản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụngcũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số cácchức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có các biến kiểu nhưPerl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giốngnhư của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút đượchàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận
là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàngnghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó
nó vẫn chủ yếu chỉ là dự án của một người
Trang 32PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời giankhá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã đượcthay thế bởi các bản alpha đầu tiên của PHP 3.0.
Trang 332.3.2 Các tính năng ưu việt của PHP:
- Tốc độ nhanh, dễ sử dụng: PHP có đầy đủ các đặc tính như khả năng, cấu trúc
và dễ sử dụng Cú pháp của nó gọn nhẹ đơn giản và tường minh
- Chạy trên nhiều hệ điều hành: PHP có thể chạy trên Windows NT/2003/2008
và Unix, Linux với sự hỗ trợ của Apache và IIS Ngoài ra nó có thể chạy tốttrên nhiều nền tảng khác như Netscape, Roxen,…
- Truy cập bất kì loại cơ sở dữ liệu nào: PHP có thể chạy tốt trên các dịch vụ nhưLDAP, IMAP Mail Server, DB2, XML Parser hay WDDX Bất kể người dùngcần điều gì thì PHP cũng sẵn sàng hỗ trợ thông qua các hàm được xây dựngsẵn
- Luôn được cải tiến và cập nhật: Có hàng nghìn những chuyên gia lập trình xuấtsắc đợi sẵn và họ sẵn sàng bỏ thời gian ra để tạo những phần mềm tuyệt vời vàgần như miễn phí
2.4.1 Giới thiệu về SQL và MySQL:
SQL (Structured Query Language – Ngôn ngữ vấn đáp có cấu trúc) là một nhómcác từ đặc biệt được sử dụng để tương tác với cơ sở dữ liệu Phần lớn các cơ sở dữ liệuđều hỗ trợ SQL và MySQL cũng không phải là ngoại lệ SQL được tạo ra sau khi Tiến sĩE.F.Codd đưa ra lí thuyết về cơ sở dữ liệu quan hệ vào đầu những năm 70 Vào năm
1989, tổ chức American National Standar Institude (một tổ chức có trách nhiệm duy trì
và phát triển ngôn ngữ này) công bố chuẩn SQL đầu tiên mà ngày nay được gọi là SQL
89 SQL92 được công bố vào năm 1992 và được sử dụng cho đến bây giờ (còn được gọi
là SQL92 hoặc đơn giản là SQL)
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theothông tin từ Website của MySQL: www.mysql.com) và được sử dụng phối hợp với PHP.Phần mềm MySQL được sử dụng cùng với ứng dụng máy chủ cơ sở dữ liệu, phần mềmmáy khách và một số tiện ích khác
2.4.2 Các chức năng ưu việt của MySQL:
Trang 34- Tính linh hoạt: Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có
sức chứa để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB đểchạy các kho dữ liệu đồ sộ lên đến hàng terabytes dữ liệu Sự linh hoạt về môitrường là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux,Unix, và Windows đang được hỗ trợ.Và dĩ nhiên, tính chất mã nguồn mở củaMySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầuthích hợp cho database server
- Tính thực thi cao: Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữliệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặcthù Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay website dunglượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khảnăng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào Với các tiệních tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác,MySQL đưa ra tất cả các “vũ khí” cần phải có cho các hệ thống doanh nghiệpkhó tính ngày nay
- Có thể sử dụng ngay: Sự đáng tin cậy cao và tính “sử dụng tức thời” là nhữngtiêu chuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùngngay từ cấu hình tái tạo chủ/khách tốc độ cao, để các nhà phân phối thứ ba đưa
ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệuMySQL
- Hỗ trợ giao dịch lớn: MySQL đưa ra một trong số những engine giao dịch dựatrên cơ sở dữ liệu mạnh nhất trên thị trường Các đặc trưng bao gồm hỗ trợgiao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất,Isolated – độc lập, Durable – bền vững), không giới hạn mức khóa dòng, khảnăng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) mà
bộ phận đọc không bao giờ gây trở ngại cho bộ phận ghi và ngược lại Tínhtoàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server cóhiệu lực, các mức giao dịch độc lập được chuyên môn hóa và phát hiện khóachết ngay lập tức
Trang 35- Nơi lưu trữ Web và dữ liệu đáng tin cậy: MySQL đã định ra chuẩn dựa trênthực tế cho các website có lưu lượng dữ liệu giao dịch lớn vì nó có engine xử
lý tốc độ cao, khả năng thêm dữ liệu nhanh cấp kì, và hỗ trợ mạnh cho cácchức năng chuyên dụng của web như tìm nhanh một đoạn văn bản Những tínhnăng này cũng được áp dụng cho môi trường máy chủ lưu trữ dữ liệu với dữliệu lên tới hàng Terabytes cho các server đơn hay các kiến trúc server có quy
mô lớn Các tính năng khác như bảng nhớ chính, cây B (B-tree) và chỉ số băm,bảng lưu trữ đã được nén lại để giảm các yêu cầu lưu trữ đến 80% làm choMySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụngdoanh nghiệp
- Chế độ bảo mật dữ liệu mạnh: Vì bảo mật dữ liệu cho một công ty là công việc
số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mậtđặc biệt để chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhậntruy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ
có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ
sở dữ liệu, với khả năng chặn người dùng ngay từ mức máy khách SSH vàSSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Mộtđối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìnthấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu
sẽ được bảo mật Cuối cùng, tiện ích sao lưu và phục hồi cung cấp bởi MySQL
và các hãng phần mềm thứ ba cho phép sao lưu cấu trúc dữ liệu theo mức vật lí
và logic, cũng như khả năng phục hồi toàn bộ hệ thống tức thời hoặc tại mộtthời điểm nào đó
- Phát triển ứng dụng toàn diện: Một trong số các lý do khiến cho MySQL trởthành cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợtoàn diện cho bất kì sự phát triển ứng dụng nào cần đến nó Trong cơ sở dữliệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function,view, cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thưviện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ hầu như tất cả
Trang 36các ứng dụng MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … đểcho phép tất cả các ứng dụng sử dụng MySQL như một server quản lí dữ liệu.
- Dễ dàng quản lý: MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thờigian ở mức trung bình từ lúc tải phần mềm đến khi cài đặt hoàn thành chỉ mấtchưa đầy 15 phút Điều này đúng cho dù môi trường là Microsoft Windows,Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tựđộng mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng chongười quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoànthiện các công cụ quản lý đồ họa cho phép một người quản trị cơ sở dữ liệuquản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ mộtmáy trạm đơn Nhiều công cụ của các hãng phần mềm thứ ba cũng có sẵntrong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việcquản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra
- Mã nguồn mở tự do và hỗ trợ 24/7: Nhiều công ty lưỡng lự trong việc giao phótoàn bộ cho phần mềm mã nguồn mở vì họ tin rằng họ không thể có được sự
hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phầnmềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụngchủ chốt của họ Những lo lắng của họ có thể được trấn an với MySQL,MySQL cung cấp một hệ thống hỗ trợ an toàn và xuyên suốt, song song vớiviệc đó những doanh nghiệp trả tiền để sử dụng MySQL sẽ được bồi thườngnếu có lỗi xảy ra với MySQL làm mất mát dữ liệu
- Tổng chi phí thấp nhất: Bằng cách sử dụng MySQL cho các dự án phát triểnmới, các công ty đang thấy rõ việc tiết kiệm chi phí Được hoàn thành thôngqua sử dụng server cơ sở dữ liệu MySQL và kiến trúc có quy hoạch, các doanhnghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử
lý Thêm vào đó, tính tin cậy và dễ bảo trì của MySQL giúp người quản trị cơ
sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết
Trang 37CHƯƠNG 3: PHÂN TÍCH CÁC CHỨC NĂNG CỦA TRÒ CHƠI
“POKEMON ONLINE”
3.1 Phân tích các chức năng chính của trò chơi:
Phương pháp phân tích: Phân tích từ trên xuống Phương pháp phân tích từ trênxuống (top-down analysis) là phương pháp thường được dùng để phân tích các ứng dụng,nội dung của phương pháp này là cố gắng xác định xem công việc cần giải quyết đượccấu thành từ những công việc nhỏ nào, cứ như vậy cho đến khi những công việc xác địnhđược là những công việc thật đơn giản, có thể thực hiện dễ dàng Phương pháp này chokết quả dễ hiểu, dễ nhận thấy sự thay đổi trong quá trình phân tích
Xây dựng biểu đồ phân rã chức năng: là việc phân tích có thứ tự từ đơn giản đếnphức tạp, có nội dung chính xác, logic
Biểu đồ phân rã chức năng: Chỉ ra sự ràng buộc của hệ thống thông tin cần xâydựng, xác định các chức năng mà chương trình cần thực hiện, xác định phạm vi của hệthống Các chức năng của hệ thống là các chức năng của chương trình sẽ được thực hiện.Chức năng càng được chia nhỏ, rõ ràng thì công việc thiết kế sẽ càng đơn giản và thuậntiện
Sau khi tìm hiểu kỹ về chương trình mà nhóm sẽ làm, nhóm đã tổng kết đượcnhững chức năng chính quan trọng sau đây:
Chức năng quản lí người sử dụng:
- Quản lí việc đăng kí tài khoản
- Quản lí việc đăng nhập tài khoản
- Quản lí việc lấy lại mật khẩu bị mất
- Đếm số lần đăng nhập của người dùng
- Quản lí thông tin người dùng
- Quản lí thông tin các trận đấu của người dùng
- Quản lí quái vật của người dùng
Trang 38- Quản lí vật phẩm của người dùng.
- Quản lí danh sách bạn bè
Chức năng trò chuyện:
- Gửi và nhận tin nhắn với người chơi khác trong phòng chờ: Người chơi có thểgửi và nhận tin nhắn tin nhắn với người chơi khác trong sàn đấu, ngoài rangười chơi khác cũng thể vào sàn đấu và quan sát nội dung trò chuyện giữa haingười chơi
- Người xem chỉ được phép quan sát đoạn hội thoại của hai đối thủ và khôngđược phép can thiệp vào đoạn hội thoại đó
- Gửi và nhận tin nhắn với người chơi khác trên bản đồ, người dùng có thể tìmkiếm người chơi khác hiển thị trên bản đồ để trò chuyện Có thể trò chuyện vớinhiều người chơi khác cùng lúc
- Giao diện đăng kí: Cho phép người chơi tạo tài khoản mới bằng cách nhậpthông tin của mình mật khẩu Sau khi đồng ý, chương trình sẽ gửi yêu cầu đăngnhập lên server, nếu đăng kí thành công chương trình sẽ hiện ra dòng chữ
Trang 39thông báo đăng kí thành công, nếu như tài khoản đã có người sử dụng hoặc kếtnối bị lỗi, chương trình sẽ hiện ra thông báo đăng kí không thành công.
- Giao diện quên mật khẩu: Khi người dùng muốn khôi phục mật khẩu, ngườidùng sẽ sử dụng giao diện này để khôi phục lại mật khẩu của mình Ngườidùng nhập vào địa chỉ mail của mình và nhấn vào nút “Đồng ý”
- Giao diện chính của trò chơi bao gồm năm giao diện nhỏ được lồng vào cáctab, mỗi tab sẽ là một giao diện nhỏ của trò chơi
Giao diện phòng thi đấu: Mỗi phòng đấu sẽ có 8 sàn đấu, người chơi
có thể chọn một trong các sàn đấu để tham gia Số người trên mỗisàn đấu sẽ được cập nhật và hiển thị liên tục Người chơi có thể ấnvào bàn chơi để chơi hoặc xem người khác chơi
Giao diện bản đồ thế giới: Hiển thị các quái vật xung quanh người chơi đểngười chơi có thể bắt hoặc luyện cấp cho quái vật của mình Nhằm tăngtính vận động cho người chơi Trong vòng 100m đổ lại người chơi chỉ cóthể bắt các quái vật thường Các quái vật huyền thoại sẽ xuất hiện ngoàikhu vực 100m, ngoài khu vực đó người chơi không thể bắt quái vật được
mà phải di chuyển sao cho các quái vật này nằm trong phạm vi bắt củamình Giao diện cũng sẽ hiện thị các vật phẩm ngẫu nhiên để người chơithu nhặt Ngoài ra trên bản đồ sẽ xuất hiện vị trí của các người chơi khác.Qua đó người sử dụng có thể kết bạn, thách đấu hoặc tìm đường đến ngườichơi khác
Giao diện thông tin quái vật: Chứa thông tin về các quái vật của người chơinhư tên quái vật, cấp, hệ và các chiêu thức của quái vật Từ đây người chơi
có thể chọn cho mình một con quái vật làm quái vật chính và tham gia vàotrò chơi
Giao diện shop vật phẩm: gồm hai tab nhỏ là mua và bán vật phẩm Tabmua vật phẩm chứa các vật phẩm có trong shop, người chơi chọn vào từngvật phẩm để xem thông tin chi tiết và nhập vào số lượng rồi nhấn nút
Trang 40“Mua” để tiến hành giao dịch mua vật phẩm Tab bán vật phẩm chứa cácvật phẩm trong túi của người chơi, người chơi chọn vào từng vật phẩm đểxem thông tin chi tiết và nhập số lượng rồi nhấn nút “Bán” để tiến hànhgiao dịch bán vật phẩm.
Giao diện thứ hạng: Hiển thị các người chơi có danh vọng cao hoặc ngườichơi có nhiều tài sản nhất trong trò chơi
- Giao diện phòng chờ:
Hiển thị thông tin người chơi và đối thủ
Hiển thị thông tin cho biết người chơi đang ở vị trí nào, là ngườichơi hay là người xem
Hiển thị đoạn đối thoại giữa hai người chơi
Nếu là người chơi thì sẽ có hai nút bấm là “Sẵn Sàng” và “Thoát”.Khi người chơi bấm nút “Sẵn Sàng” thì nút sẽ bị mờ đi không chongười chơi ấn vào trong khoảng 30 giây Sau thời gian đó nếu bênđối thủ không ấn “Sẵn Sàng” để vào phòng đấu thì người chơi đượcquyền ấn “Hủy Sẵn Sàng” để thoát ra khỏi chế độ sẵn sàng hoặc ấnnút “Thoát” để thoát ra khỏi sàn đấu
Nếu là người xem chỉ có thể quan sát thông tin quái vật của haingười chơi và cuộc đối thoại giữa hai người chơi đó Người xemkhông thể tham gia vào quá trình trò chuyện cũng như không có nút
“Sẵn Sàng” mà chỉ có nút “Thoát”
- Giao diện trận đấu:
Hiển thị thông tin của quái vật người chơi và đối thủ như tên quáivật, máu, năng lượng và kinh nghiệm
Người chơi có thể thấy máu, năng lượng và kinh nghiệm của quáivật mình nhưng chỉ có thể thấy máu của quái vật đối thủ, không thểthấy năng lượng và kinh nghiệm của đối thủ