Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
2,08 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI: NGHIÊN CỨU HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG CHƯƠNG TRÌNH DEMO GAME CARO ONLINE Mã số : 06T3-016, 06T3-025 Ngày bảo vệ : 15/06/2011 SINH VIÊN : PHAN NGỌC HUY HOÀNG ĐỨC NHÂN LỚP : 06T3 CBHD : ThS TRẦN ĐÌNH SƠN ĐÀ NẴNG, 06/2011 LỜI CẢM ƠN Chúng xin chân thành cảm ơn thầy cô trường ĐHBK Đà Nẵng, đặc biệt thầy cô khoa Công Nghệ Thông Tin, truyền đạt kiến thức q báu dẫn tận tình cho năm học qua Đặc biệt, xin chân thành cảm ơn thầy giáo ThS Trần Đình Sơn, khoa Cơng Nghệ Thơng Tin, trường Đại học Bách Khoa tận tình hướng dẫn, động viên giúp đỡ suốt thời gian thực đề tài Và cảm ơn bạn khoa Cơng Nghệ Thơng Tin – khóa 06T ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm tài liệu cho nhóm chúng tơi q trình nghiên cứu thực đề tài Và để có kết ngày hôm nay, biết ơn gia đình động viên, khích lệ, tạo điều kiện thuận lợi suốt trình học tập trình thực đề tài tốt nghiệp Tuy nhiên, trình thực đề tài khơng thể tránh khỏi thiếu sót Chúng tơi mong nhận nhiều ý kiến phê bình q thầy cô, anh chị bạn Xin chân thành cảm ơn Đà Nẵng, ngày 05/06/2011 Sinh viên thực Phan Ngọc Huy – 06T3 Hoàng Đức Nhân – 06T3 LỜI CAM ĐOAN Tôi xin cam đoan : Những nội dung luận văn thực hướng dẫn trực tiếp thầy ThS Trần Đình Sơn Mọi tham khảo dùng luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Sinh viên, Phan Ngọc Huy – 06T3 Hoàng Đức Nhân – 06T3 MỤC LỤC TỔNG QUAN VỀ ĐỀ TÀI - 11 I Tổng quan - 11 - II Đặt vấn đề - 11 - III Lý chọn đề tài - 12 - IV Hướng nghiên cứu đề tài - 12 - IV.1 Cơ sở lý thuyết - 12 - IV.2 Công cụ thiết kế .- 12 - V Dự kiến kết đạt - 13 - VI Nội dung tổ chức luận văn .- 13 - GIỚI THIỆU TỔNG QUAN VỀ ANDROID .- 14 I Giới thiệu Android - 14 - II Những tính Android - 16 - III Kiến trúc hệ điều hành Android .- 16 - III.1 Applications layer (Tầng ứng dụng) - 17 - III.2 Application Framework (Nền tảng ứng dụng) - 18 - III.3 Libraries Layer (Tầng thư viện) & Android Runtime (Tầng thực thi)- 19 - III.4 Linux Kernel (Nhân Linux) .- 21 - IV V Hệ thống tập tin hệ điều hành Android - 22 - IV.1 Tổng quan hệ thống file Android - 22 - IV.2 Các kiểu file Android - 22 - IV.3 Tổ chức quyền sở hữu quyền hạn file - 23 - IV.4 Cây thư mục hệ điều hành Android - 24 - Cách thức tổ chức file Android Java Application .- 25 - VI Vòng đời Android - 27 - VII Bộ SDK (Software Development Kit – Bộ phát triển phần mềm) Google phát triển dành cho Android - 28 VII.1 Giới thiệu Android SDK .- 28 - VII.2 Cấu hình Android SDK Eclipse 3.5 - 28 - VII.3 Cập nhật ADT Plugin .- 30 - VII.4 Sử dụng công cụ Eclipse để phát triển ứng dụng Android - 30 - VIII Giới thiệu số gói Android .- 31 - CƠ SỞ LÝ THUYẾT - 33 I II Giới thiệu loại Game - 33 I.1 Game hành động – Action .- 33 - I.2 Game nhập vai – Role Playing Game (RPG) - 33 - I.3 Game phiêu lưu – Adventure - 33 - I.4 Game chiến thuật – Strategy - 34 - I.5 Các thể loại game nhỏ .- 34 - I.5.1 Kinh dị (Survival horror) - 34 - I.5.2 Mô (Simulation) - 34 - I.5.3 Thể thao (Sport) - 35 - I.5.4 Giải đố (Puzzle) - 35 - I.5.5 Đối kháng (Fighting) - 35 - Các thành phần đồ họa (graphics) - 35 II.1 File bitmap .- 35 - II.2 Các mơ hình màu .- 35 - II.3 Background Image - 36 - II.4 Frame .- 36 - II.5 Tile - 36 - II.6 Sprite .- 37 - II.7 Map (Bản đồ) - 37 - II.8 Layer - 38 - III Kỹ thuật xây dựng đồ họa - 38 - III.1 Graphics techiques (kỹ thuật đồ họa) .- 38 - III.2 Kỹ thuật chuyển tiếp địa hình - 39 - III.3 Tổ chức map - 40 - III.3.1 Dùng tile .- 40 - III.3.2 Dùng background .- 41 - III.4 Cuộn map - 41 - III.5 Tạo chuyển động (animation) - 42 - III.6 Đồng frame - 42 - IV Kỹ thuật thiết kế game - 43 - IV.1 Game loop .- 43 - IV.1.1 Tổng quan game loop - 43 - IV.1.2 Sơ đồ trực quan vòng lặp game - 44 - IV.2 Game AI (Artificial Intelligent) .- 45 - IV.2.1 Game AI .- 45 - IV.2.2 Mơ hình artificial intelligent .- 45 - IV.3 Game Physics - 46 - IV.4 Thread - 47 - IV.5 Sound (âm thanh) .- 48 - THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH - 49 I Đặc tả game Caro - 49 I.1 Giới thiệu game Caro - 49 - I.2 Một số thủ thuật chơi Caro - 49 - I.3 Mô tả luật chơi - 51 - I.4 Mô tả cách chơi .- 51 - II Xây dựng thiết kế hệ thống - 52 II.1 Phân tích yêu cầu .- 52 - II.2 Thiết kế hệ thống .- 52 - II.2.1 Sơ đồ Use Case - 52 - II.2.1.1 Mơ hình Use Case Menu Game .- 52 II.2.1.2 Mơ hình Use Case Player - 53 II.2.1.3 Mô hình Use case Board (bàn cờ) - 54 II.2.1.4 Mơ hình Use case Server .- 55 II.2.2 Sơ đồ hoạt động - 55 - II.2.3 Sơ đồ lớp (Class) - 56 - II.3 Các thuật tốn chương trình .- 65 - II.3.1 Xây dựng bàn cờ - 65 - II.3.2 Xây dựng Server - 65 - II.3.3 Xây dựng Client - 66 - III Kết chương trình .- 67 - III.1 Giao diện menu game - 67 - III.2 Giao diện tùy chọn màu quân cờ .- 68 - III.3 Giao diện đăng nhập - 68 - III.4 Giao diện đăng ký - 69 - III.5 Giao diện đăng nhập vào - 69 - III.6 Giao diện thay đổi thông tin User - 70 - III.7 Giao diện chọn Room - 71 - III.8 Giao diện chọn Paper (chọn bàn cờ) - 72 - III.9 Giao diện vào bàn cờ - 73 - III.10 Giao diện bàn cờ chơi game - 74 - III.11 Giao diện chiến thắng - 75 - KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN - 76 I II Kết đạt .- 76 I.1 Về lý thuyết .- 76 - I.2 Về thực nghiệm .- 76 - Hướng phát triển đề tài .- 77 - DANH MỤC HÌNH Hình 1: Mơ hình kiến trúc hệ điều hành Android .- 17 Hình 2: Bảng liệt kê số kiểu file Linux .- 23 Hình 3: Sơ đồ thư mục hệ điều hành Android - 25 Hình 4: Cách tổ chức file Android Java Application - 26 Hình 5: Vịng đời Android - 27 Hình 6: Các hướng di chuyển Isometric tile .- 38 Hình 7: Sơ dồ tọa độ Isometric tile map - 39 Hình 8: Các hướng di chuyển Hexagon title .- 39 Hình 9: Sơ đồ tọa độ Hexagon tile map .- 39 Hình 10: Chưa chuyển tiếp - 40 Hình 11: Sau chuyển tiếp - 40 Hình 12: Xây dựng map dùng tile - 41 Hình 13: Xây dựng map dùng background .- 41 Hình 14: Sơ đồ trực quan vòng lặp game - 44 Hình 15: Sơ đồ Use Case Menu Game .- 52 Hình 16: Sơ đồ Use Case Player - 53 Hình 17: Sơ đồ Use Case Board - 54 Hình 18: Sơ đồ Use Case Server - 55 Hình 19: Sơ đồ hoạt động - 55 Hình 20: Lớp Caro - 56 Hình 21: Lớp CaroGame - 56 Hình 22: Lớp CaroView - 57 Hình 23: Lớp Wingame .- 57 Hình 24: Lớp Login .- 58 Hình 25: Lớp Register - 58 Hình 26: Lớp ServerManager - 59 Hình 27: Lớp Current - 59 Hình 28: Lớp Room .- 60 Hình 29: Lớp ListRoom - 60 Hình 30: Lớp ListRoomLayout - 60 Hình 31: Lớp ListRoomAdapter - 61 Hình 32: Lớp Paper .- 62 - Hình 33: Lớp ListPaper - 63 Hình 34: Lớp ListPaperLayout - 63 Hình 35: Lớp ListPaperAdapter - 63 Hình 36: Lớp ViewPaper - 64 Hình 37: Giao diện menu game - 67 Hình 38: Giao diện chọn màu quân cờ - 68 Hình 39: Giao diện đăng nhập vào game - 68 Hình 40: Giao diện đăng ký account - 69 Hình 41: Giao diện login vào - 69 Hình 42: Giao diện thay đổi thơng tin .- 70 Hình 43: Giao diện chọn room - 71 Hình 44: Giao diện chọn bàn cờ - 72 Hình 45: Giao diện vào bàn cờ đợi người chơi .- 73 Hình 46: Giao diện playing game .- 74 Hình 47: Giao diện win game .- 75 - Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online Lớp View Paper Hình 36: Lớp ViewPaper Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 63 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online II.3 Các thuật tốn chương trình I.1 Xây dựng bàn cờ Xây dựng bàn cờ theo kiểu ma trận Xây dựng Server Database – server - Table Users + userID + usn + pwd + countWin + numOfBattle + address + tel + email - Table Rooms + roomID + name - Table Papers + paperID + roomId + name + oPlayer + xPlayer + oStatus + xStatus Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 64 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online + status - Table Steps + paperid + userid +x +y + status Function – server - login() -> trả đối tượng user _signup()->trả true fa - changeUserDetails (User) -> trả Boolean - getRooms() -> trả mảng room - getPaper(roomid) -> trả mảng paper phòng roomId - regisPaper(userid, paperid) -> trả Boolean (đăng ký vào phịng) - changePlayerStatus(userid, paperid) -> thay đổi tình trạng người chơi (sẵn sàng, chưa sẳn sàng) - changePaperStatus(paperid) -> thay đổi tình trạng paper (chưa bắt đầu, bắt đầu) - go(userid, paperid, x, y) -> đánh vào vị trí x,y - win(userid, paperid) -> thiết lập người chiến thắng - getSteps(paperid) -> lấy bước đánh Xây dựng Client - Play Offline - Play Online - User Details - View Room Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 65 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online - View Paper - Client gọi function server để thực tác vụ cần thiết lấy giá trị để xử lý client .III Kết chương trình III.1 Giao diện menu game Hình 37: Giao diện menu game Phan Ngọc Huy, Hồng Đức Nhân – 06T3 66 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.2 Giao diện tùy chọn màu quân cờ Hình 38: Giao diện chọn màu quân cờ III.3 Giao diện đăng nhập Hình 39: Giao diện đăng nhập vào game Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 67 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.4 Giao diện đăng ký Hình 40: Giao diện đăng ký account III.5 Giao diện đăng nhập vào Hình 41: Giao diện login vào Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 68 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.6 Giao diện thay đổi thông tin User Hình 42: Giao diện thay đổi thơng tin Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 69 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.7 Giao diện chọn Room Hình 43: Giao diện chọn room Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 70 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.8 Giao diện chọn Paper (chọn bàn cờ) Hình 44: Giao diện chọn bàn cờ Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 71 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.9 Giao diện vào bàn cờ Hình 45: Giao diện vào bàn cờ đợi người chơi Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 72 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.10 Giao diện bàn cờ chơi game Hình 46: Giao diện playing game Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 73 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online III.11 Giao diện chiến thắng Hình 47: Giao diện win game Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 74 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Xây dựng ứng dụng game cho di động lĩnh vực sôi động đầy thách thức sinh viên công nghê, lĩnh vực khó đầy lơi u thích lập trình trình game cho di động để đưa giới giải trí vào tầm tay Sau thời gian tìm hiểu, nghiên cứu đề tài, thu kết sau: I I.1 Kết đạt Về lý thuyết Qua việc thực đề tài này, nghiên cứu nắm bắt công nghệ Android, công nghệ dành cho thiết bị di động, phát triển Google Sử dụng công cụ lập trình Eclipse để phát triển ứng dụng Android Nắm lý thuyết phát triển game 2D Online kỹ thuật sử dụng phát triển game 2D Online Có nhiều cách để giải vấn đề game nhiên sử dụng cách để giải vấn đề đặt .I.2 Về thực nghiệm Dựa theo yêu cầu đặc đề tài, xây dựng ứng dụng game Caro online với chức sau: Giao diện đơn giản, dễ sử dụng Chương trình thỏa mãn yêu cầu chung đề tài đặt Chương trình hoạt động tốt cài đặt thiết bị di động Tuy nhiên chương nhiều hạn chế như: Chưa kiểm thử thiết bị di động Android khác Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 75 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online II Hướng phát triển đề tài Tiếp tục nghiên cứu kỹ thuật phát triển game 2D Online công cụ phát triển game khác Tiếp tục hồn thiện để chương trình hoạt động tốt Cải thiện AI (trí tuệ nhân tạo) game để chơi tốt hiệu Tiến hành chạy thử chương trình thiết bị khác để phát lỗi tiềm ẩn cách khắc phục Đưa ứng dụng vào thực tế Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 76 Nghiên cứu hệ điều hành Android – Xây dựng chương trình demo game Caro Online TÀI LIỆU THAM KHẢO Jonathan S Harbour: Begin java game programming Reto Meier: Professional Android Application Development Vladimir Silva: Pro Android Game Ed Burnette: Hello, Android: Introducing Google's Mobile Development Platform, 2nd Edition [5] http://code.google.com/android [6] http://vietandroid.com/ [7] http://gamedev.net [8] http:// android.com [9] http:// dewitters.koonsolo.com/gameloop.html [10] http://java.sun.com/docs/books/tutorial [1] [2] [3] [4] Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 77