Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
2,62 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC Tel (84-511)3841323 - 3841513, Fax (84-511) 3842953 Website: www.ued.edu.vn E-mail: Education@dng.vnn.vn KHÓA LUẬN TỐT NGHIỆP NGÀNH CỬ NHÂN CÔNG NGHỆ THÔNG TIN ĐỀ TÀI: NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 2D TRÊN NỀN ANDROID Sinh viên : Trương Thị Tâm Lớp : 08CNTT2 Giáo viên hướng dẫn : ThS Nguyễn Thanh Tuấn Đà Nẵng, tháng năm 2012 LỜI CẢM ƠN Đầu tiên em xin chân thành cảm ơn thầy cô trường Đại học Sư phạm Đà Nẵng, truyền đạt kinh nghiệm quý báu cho chúng em năm học vừa qua Đặc biệt xin chúng em xin chân thành cảm ơn thầy Nguyễn Thanh Tuấn nhiệt tình hướng dẫn em hồn thành đề tài luận văn tốt nghiệp Để có kết ngày hôm nay, xin chân thành cảm ơn Ban lãnh đạo anh chị Công ty TNHH TH-TM AsNet, nơi em thực tập tận tình giúp đỡ, tạo điều kiện tốt cho em hồn thành đề tài Tuy nhiên, q trình hồn thành đề tài khơng thể tránh khỏi thiếu sót Em mong nhận nhiều đóng góp quý thầy cô, anh chị cơng ty để đề tài hồn thiện Em xin chân thành cảm ơn Đà Nẵng, tháng 5/2012 Sinh viên thực hiện: Trương Thị Tân 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 thầy Nguyễn Thanh Tuấn Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng tơi xin chịu hồn tồn trách nhiệm Sinh viên thực Trương Thị Tâm MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT MỞ ĐẦU 10 Lý chọn đề tài 10 Mục đích nghiên cứu 10 Đối tượng phạm vi nghiên cứu 10 3.1 Đối tượng nghiên cứu 10 3.2 Phạm vi nghiên cứu 11 Phương pháp nghiên cứu 11 4.1 Cơ sở lý thuyết 11 4.2 Cơng cụ thiết kế chương trình 11 4.3 Dự kiến kết đạt 12 Ý nghĩa khoa học thực tiễn đề tài 12 Cấu trúc luận văn 12 Phân công công việc: 13 Chương 1: TỔNG QUAN VỀ ANDROID 15 1.1 Giới thiệu Android 15 1.1.1 Android gì? 15 1.1.2 Lịch sử Android 15 1.1.3 Những tính Android 16 1.1.4 Mơ hình Android 16 1.1.5 Vòng đời Android 18 1.1.6 Một số gói Android 21 1.2 Cài đặt SDK 22 1.2.1 Giới thiệu SDK 22 1.2.2 Cài đặt Plugin cho Eclipse 23 Chương CÁC KĨ THUẬT CƠ BẢN XÂY DỰNG GAME 2D 26 2.1 Các thành phần đồ họa 26 2.1.1 Các dạng file ảnh 26 2.1.2 Các hệ màu 26 2.1.2.1.Hệ màu RGB 26 2.1.2.2 Hệ màu CMYK 28 2.2 Các khái niệm 30 2.2.1 Sprite 30 2.2.2 Frame 30 2.2.3 Frame rate 31 2.2.4 Đồng Frame 31 2.2.5 Animation 32 2.2.6 Tile 33 2.2.7 Map 33 2.2.8 Layer 34 2.3 Kĩ thuật xây dựng đồ họa Game 2D 35 2.3.1 Kĩ thuật đồ họa 35 2.3.2 Kĩ thuật chuyển tiếp địa hình 37 2.3.3 Kĩ thuật thiết kế map 37 2.3.3.1 Dùng tile 37 2.3.3.2 Dùng background 38 2.3.4 Xử lý đụng độ (Collision Detection) 39 2.4 Kĩ thuật thiết kế Game 40 2.4.1 Game Loop 40 2.4.2 Game AI gì? 41 2.4.3 Game Physics 41 2.4.4 Sound 42 Chương 3: THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH 43 3.1 Phân tích Game 43 3.1.1 Đặc tả game Plant vs Zombies 43 3.1.1.1 Giới thiệu game 43 3.1.1.2 Mô tả luật chơi 43 3.1.2 Cách quản lý đối tượng game 44 3.1.3.Thiết kế Game 45 3.1.4 Cách điều khiển game 46 3.1.5 Cách tạo âm game 47 3.1.6 Cách xử lý va chạm game 47 3.2 Phân tích thiết kế hệ thống 50 3.2.1 Phân tích yêu cầu 50 3.2.2.Thiết kế hệ thống 50 3.2.2.1 Sơ đồ Use Case 50 3.2.2.2 Sơ đồ lớp (class) 55 3.2.2.3 Sơ đồ 63 3.2.2.4 Sơ đồ hoạt động 65 3.2.1 Giao diện menu 66 Kết đạt 67 1.1 Về lý thuyết 67 1.2.Về thực nghiệm 67 Hướng phát triển đề tài 68 TÀI LIỆU THAM KHẢO 69 DANH MỤC CÁC HÌNH Chương Hình 1 Biểu tượng hệ điều hành Android 15 Hình Mơ hình Android 17 Hình Mơ hình vịng đời Android 18 Hình Hình ảnh device emulator 23 Hình Biểu diễn bước cài đặt plugin 24 Hình Hình biểu diễn địa trang web cài đặt plugin 24 Hình Hình biểu diễn qua trình cài đặt tự động plugin 25 Chương Hinh File ảnh vector bitmap 26 Hinh 2 Hệ màu RGB 27 Hinh Hệ màu CMYK 29 Hinh Sprite 30 Hinh Quá trình đồng frame 32 Hinh Tile 33 Hinh Thứ tự xếp layer 34 Hinh Isometric tile 35 Hinh Các hướng di chuyển Isometric tile 35 Hinh 10 Sơ đồ Isometric tile map 36 Hinh 11 Hexagon tile 36 Hinh 12 Các hướng di chuyển Hexagon tile 36 Hinh 13 Sơ đồ Hexagon tile map 36 Hinh 14 Chưa chuyển tiếp 37 Hinh 15 Sau chuyển tiếp 37 Hinh 16 Map dùng tile 38 Hinh 17 Dùng background 39 Hinh 18 Xảy va chạm 39 Hinh 19 Chưa xảy va chạm 40 Chương Hình Mơ hình tổng qt BrainStorm 45 Hình Thiết kế chi tiết cho đối tượng plants game 46 Hình 3 Mơ hình thiết kế nhân vật Zombie 46 Hình Va chạm plants zombies 48 Hình Hình ảnh Zombies tiến vào nhà 49 Hình Plants phát zombies bắn đạn 49 Hình Va chạm đạn zombies 50 Hình Kiểm tra va chạm đạn zombies 50 Hình Mơ hình Use Case Menu 51 Hình 10 Mơ hình Use Case Game Play 53 Hình 11 Sơ đồ lớp 55 Hình 12 Lớp Zombies_Activity 56 Hình 13 Lớp ZombiesView 57 Hình 14 Lớp LinkList 58 Hình 15 Lớp Animation 59 Hình 16 Lớp Zombie 60 Hình 17 Lớp Plant 61 Hình 18 Lớp Bullet 62 Hình 19 Sơ đồ hiển thị menu 63 Hình 20 Sơ đồ trình chơi game 64 Hình 21 Sơ đồ hoạt động 65 Hình 22 Giao diện menu chương trình 66 Hình 23 Giao diện playing game 66 DANH MỤC CÁC TỪ VIẾT TẮT UML: Unified Modeling Language SDK : Software Development Kit ADT: Android Development Tools AI: Artificial Intelligence Nghiên cứu phát triển game 2D Android MỞ ĐẦU Lý chọn đề tài Ngày nhu cầu đời sống người ngày nâng cao, có hiểu biết rộng rãi hơn, cơng nghệ tính điện thoại người ý đặt mối qua tâm Thêm vào nhu cầu giải trí người quan tâm, xuất phát từ nhu cầu game di động trở thành công cụ thiếu sống người thời đại Từ thưc tế đó, với kiến thức học kết hợp với tảng Android di động chúng em chọn đề tài tốt nghiệp cho là: Nghiên cứu phát triển game 2D điện thoại di động Android Xây dựng ứng dụng game Plants vs Zombies Mục đích nghiên cứu Với phát triển cơng nghệ hiên nay, giới ví giới cơng nghệ thơng tin Thêm vào nhu cầu giải trí người ngày cao, người ta chọn giải pháp hoàn hảo cho xả stress sau ngày làm việc mệt mỏi game mà thị trường game ngày sơi động nóng bỏng, đặc biệt game di động, thiết bị di động trở thành trợ thủ thiếu người Với lý đáng đó, nhóm chúng em nghiên cứu tìm hiểu công nghệ tảng Android kĩ thuật làm game 2D, giúp người đọc thân chúng em có nhìn tổng qt Android lợi ích mà mang lại Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu Android hệ điều hành mở cho tảng di động chọn lựa đắn người tiêu dùng Với đề tài chúng em nghiên cứu công nghệ, tảng ứng dụng Android thiết bị di động kĩ thuật làm game 2D SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 10 Nghiên cứu phát triển game 2D Android 3.2.2.2 Sơ đồ lớp (class) Hình 11 Sơ đồ lớp SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 55 Nghiên cứu phát triển game 2D Android Lớp Zombies_Activity Hình 12 Lớp Zombies_Activity Đây lớp sở chương trình, quản lý vịng đời hoạt động chương trình từ khởi tạo đến bị hủy bỏ, lớp chương trình sử dụng dẫn xuất từ lớp Các phương thức chính: OnCreate(): khởi tạo nhân tố tĩnh, đối tượng chương trình OnDestroy(): dừng hẳn cơng việc chương trình OnPause(): tạm dừng công việc SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 56 Nghiên cứu phát triển game 2D Android Lớp ZombiesView Hình 13 Lớp ZombiesView Đây lớp chương trình, lớp điều khiển âm thanh, quản lý trạng thái game, kiện điều khiển người chơi để quy định việc vẽ cập nhật: menu, tạo vật phẩm khác, điểm… Lớp chứa hàm chính: Ondraw(): vẽ đối tượng lên hình Class(): hàm chứa enum tên đối tượng game NewClass(): hàm tạo tất đối tượng từ lớp đối tượng xây dựng trước NewObject(): hàm tạo đối tương mới, hàm phụ thuộc vào hàm NewObject OntoughtEvent(): nhận kiện tough hình, nhờ có kiện người chơi điều khiển đối tượng suốt trình chơi game SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 57 Nghiên cứu phát triển game 2D Android Lớp Linklist: Hình 14 Lớp LinkList Đây lớp dùng để quản lý đối tượng theo danh sách liên kết Lớp chứa hàm chính: Addnode(): có tác dụng them nút vào danh sách Deletenode(): có tác dụng xóa nút khỏi danh sách Search(): có tác dụng tìm kiếm nút danh sách Size(): có tác dụng trả số phần tử danh sách Empty(): có tác dụng kiểm tra danh sách có rỗng hay khơng Browselist(): có tác dụng duyệt phần tử danh sách SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 58 Nghiên cứu phát triển game 2D Android Lớp Animation: Hình 15 Lớp Animation Đây lớp sinh đối tượng game, lớp đối tượng khác phải thừa kế từ lớp Có phương thức sau: ThePaint(): hàm tính tốn chiều cao, chiều rộng spite, đếm frame sau vẽ đối tượng lên hình Ondraw(): hàm abstract, hàm định nghĩa lại lớp lớp Animation, hàm có tác dụng vẽ đối tượng lên hình Collision(): hàm abstract, hàm định nghĩa lại lớp lớp Animation, có tác dụng phát xử lý va chạm SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 59 Nghiên cứu phát triển game 2D Android Update(): hàm abstract, hàm định nghĩa lại lớp lớp Animation, co tác dụng cập nhật lại tọa độ đối tượng Lớp Zombie: Hình 16 Lớp Zombie Đây lớp kế thừa từ lớp Animation Lớp dùng để tạo đối tượng Zombies game Lớp gồm phương thức sau: Ondraw(): có tác dụng vẽ đối tượng zombies lên hình, hàm để gọi ThePaint() Collision(): phát xử lý va chạm zombies Update(): cập nhật tọa độ zombies SupHP(): trừ máu zombies có va chạm với đạn SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 60 Nghiên cứu phát triển game 2D Android AddLinklist(): add zombies vào danh sách liên kết để vẽ chúng lên hình DeleteLinklist(): xóa zombies khỏi danh sách liên kết Lớp Plant: Hình 17 Lớp Plant Đây lớp kế thừa từ lớp Animation Lớp dùng để tạo đối tương game Lớp gồm phương thức sau: Ondraw(): có tác dụng vẽ đối tượng plant lên hình, hàm để gọi ThePaint() Collision(): phát xử lý va chạm plants zombies SupHP(): trừ máu có va chạm với zombies AddLinklist(): add vào danh sách liên kết để vẽ chúng lên hình SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 61 Nghiên cứu phát triển game 2D Android DeleteLinklist(): xóa khỏi danh sách liên kết Lớp Bulle Hình 18 Lớp Bullet Đây lớp kế thừa từ lớp Animation Lớp dùng để tạo đối tương đạn game Lớp gồm phương thức sau: Ondraw(): có tác dụng vẽ đối tượng đạn lên hình, hàm để gọi ThePaint() Collision(): phát xử lý va chạm đạn Zombies AddLinklist(): add đạn vào danh sách liên kết để vẽ chúng lên hình DeleteLinklist(): xóa đạn khỏi danh sách liên kết SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 62 Nghiên cứu phát triển game 2D Android 3.2.2.3 Sơ đồ Hình 19 Sơ đồ hiển thị menu SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 63 Nghiên cứu phát triển game 2D Android Hình 20 Sơ đồ trình chơi game SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 64 Nghiên cứu phát triển game 2D Android 3.2.2.4 Sơ đồ hoạt động Hình 21 Sơ đồ hoạt động SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 65 Nghiên cứu phát triển game 2D Android 3.2 Kết chương trình 3.2.1 Giao diện menu Hình 22 Giao diện menu chương trình 3.2.2 Giao diện chơi game Hình 23 Giao diện playing game SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 66 Nghiên cứu phát triển game 2D Android KẾT LUẬN Xây dựng ứng dụng game cho di động lĩnh vực mẻ với sinh viên, sôi động đầy khó khăn thách thức Nhưng niềm đam mê, hứng thú u thích lập 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, chúng em đạt kết sau: Kết đạt 1.1 Về lý thuyết Qua việc nghiên cứu thực đề tài, em hiểu rõ nắm bắt công nghệ Android, công nghệ dành cho thiết di động phát triển google Biết cách sử dụng Eclipse plugin để phát triển ứng dụng Android Biết kĩ thuật làm game 2D, biết cách quản lý đối tượng game Biết cách giải vấn đề đặt Học thêm nhiều kiến thức lập trình hướng đối tượng Biết cách sử dụng photoshop để thiết kế nhân vật 1.2.Về thực nghiệm Dựa vào yêu cầu đề tài, em xây dựng game Plants vs Zombies với chức sau: SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 67 Nghiên cứu phát triển game 2D Android Giao diện đẹp mắt, đơn giản, dễ sử dụng Đã tạo ba loại Zombies, năm loại chơi Chương trình đáp ứng yêu cầu đề Chương trình chạy thiết bị di động sử dụng hệ điều hành Android Tuy nhiên, thời gian có hạn nên chương trình cịn nhiều hạn chế như: Các chức chương trình cịn thiếu Chưa tận dụng hết mạnh công nghệ Andoid Chưa kiểm thử thiết bị di động khác sử dụng hệ điều hành Andoid Hướng phát triển đề tài 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 làm nhiều level hơn, có thời gian vào ban ngày ban đêm, với Zombies nhiều hơn, cấp độ Zombies mạnh Hoàn thiện tốt chức chương trình SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 68 TÀI LIỆU THAM KHẢO [1] David Michael ()Tile/Map-Based Game Techniques: Handling Terrain Transitions [2] TANSTAAFL ()Putting People, Creatures, Items, etc on Iso/Hex Maps, and still having it come out correctly [3] http://android.com [4] http://www.javacodegeeks.com [5] http://www.edu4java.com [6] http://www.droidnova.com [7] http://wikipedia.org [8] http://java.sun.com/docs/books/totorial [9] http://up.4share.vn ... tảng Android di động chúng em chọn đề tài tốt nghiệp cho là: Nghiên cứu phát triển game 2D điện thoại di động Android Xây dựng ứng dụng game Plants vs Zombies Mục đích nghiên cứu Với phát triển. .. làm game 2D SVTH: Trương Thị Tâm – Lớp 08CNTT2 Trang 10 Nghiên cứu phát triển game 2D Android 3.2 Phạm vi nghiên cứu Phạm vi nghiên cứu đề tài kiến thức liên quan đến Android kĩ thuật làm game 2D. .. trình phát triển game 2D, nhằm xây dựng thành cơng ứng dụng game 2D di động Android Với mục đích đó, u cầu phải nắm kiến thức sau tảng công nghệ Android: Quy trình phát triển ứng dụng game di động