Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 120 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
120
Dung lượng
8,33 MB
Nội dung
TRƯỜNG ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT PHẦN MỀM Khóa luận tốt nghiệp Đề tài: Nghiên cứu game engine Cocos2D viết ứng dụng minh họa Giảng viên: PGS.TS Vũ Thanh Nguyên CH Nguyễn Công Hoan Sinh viên : Nguyễn Văn Trường Phạm Minh Cường Mssv: 07520502 Mssv: 07520041 TP Hồ Chí Minh 09/2012 MỞ ĐẦU Điện thoại di động nói chung điện thoại cảm ứng nói riêng ngày trở nên giàu tính năng, đặc biệt việc trang bị phần cứng mạnh mẽ mở nhiều hướng phát triển Di động chơi game khơng khái niệm mới, hình ảnh người cầm tay điện thoại để thỏa mãn sở thích chơi game trở nên phổ biến sống hàng ngày Các hãng điện thoại không ngừng đưa dòng điện thoại có cấu hình phần cứng mạnh mẽ phục vụ cho chơi game để đáp ứng nhu cầu người tiêu dùng Trong đó, smartphone đình đám Apple khơng làm tốt vai trò điện thoại bình thường Mà từ lâu iPhone coi máy chơi game di động thành công thời đại Điện thoại iPhone trang bị phần cứng mạnh mẽ phục vụ cho việc chơi game tốt Luôn cải tiến phát triển nên hứa hẹn tương lai iPhone trở thành máy chơi game tốt Với xu hướng việc phát triển game iPhone trở nên phát triển Các sản phẩm game iPhone ngày nhiều thể loại nội dung Nhu cầu ngày nhiều thúc đẩy nhà phát triển game ứng dụng iPhone phát triển theo Phát triển ứng dụng game iPhone trở thành nhánh ngành phát triển phần mềm Vì mà việc đòi hỏi phải có nhiều cơng cụ, engine hổ trợ cho phát triển ứng dụng game iPhone đòi hỏi cao Các nhà phát triển đưa nhiều game engine, framework mã nguồn mở, mã nguồn thương mại để phát triển game iPhone Do đó, khóa luận “Nghiên cứu game engine Cocos2D viết ứng dụng minh họa”, tìm hiểu trình phát triển iPhone hỗ trợ cho việc chơi game, game cho iPhone phát triển nào, tìm hiểu số game engine 2D iPhone,tìm hiểu Cocos2D engine mạnh mẽ để phát triển game 2D iPhone, phát triển game nhỏ để minh họa cho khả phát triển game Cocos2D.Khóa luận bao gồm nội dung sau: GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường Chƣơng 1:Trình bày tổng quan khóa luận: giới thiệu đề tài, mục tiêu đề tài cần đạt được, phạm vi đề tài, nội dung nghiên cứu Chƣơng 2: Tổng quan iPhone, phát triển dòng sản phẩm iPhone, công nghệ iPhone phát triển phục vụ chơi game, thị trường game iPhone Chƣơng 3:Giới thiệu game engine, game engine 2D cho iPhone, danh sách số game engine iPhone Thế mạnh Cocos2D so với engine Chƣơng 4:Mơ tả tổng quan Cocos2D, số khái niệm, thuật ngữ , số chức Cocos2D Chƣơng 5: Một số yếu tố quan trọng Cocos2D Những yếu tố cấu thành nên game hồn chỉnh Chƣơng 6: Một só kỹ thuật có Cocos2D hỗ trợ quan trọng để làm game 2D cho iPhone Chƣơng 7: Xây dựng ứng dụng minh họa game engine Cocos2D GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường LỜI CẢM ƠN Chúng em xin chân thành cảm ơn Khoa Công Nghệ Phần Mềm, trường Đại Học Công Nghệ Thông Tin – ĐH Quốc Gia Tp.HCM tạo điều kiện tốt cho chúng em thực đề tài tốt nghiệp Chúng em xin chân thành cảm ơn thầy Vũ Thanh Nguyên – Trưởng Khoa Kỹ Thuật PhầnMềm thầy Nguyễn Công Hoan tận tình hướng dẫn, bảo hỗ trợ cho chúng em suốt thời gian thực đề tài Chúng em xin chân thành cảm ơn quý Thầy Cơ Khoa Kỹ Thuật Phần Mềm tận tình giảng dạy, trang bị cho chúng em kiến thức quý báu năm học vừa qua Chúng xin gửi lòng biết ơn sâu sắc đến ba, mẹ gia đình ni dưỡng, giáo dục, tạo điều kiện tốt cho chúng thành người có ích cho xã hội Chúng chân thành cảm ơn đến anh chị em bạn bè ủng hộ, giúp đỡ động viên lúc khó khăn suốt thời gian học tập nghiên cứu Mặc dù chúng em cố gắng hoàn thành luận văn phạm vi khả cho phép, chắn khơng tránh khỏi thiếu sót, kính mong cảm thơng tận tình bảo q Thầy Cơ bạn Nhóm sinh viên thực Phạm Minh Cường & Nguyễn Văn Trường GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Khóa luận đáp ứng yêu cầu luận vănkĩ sư tin học TP.HCM, ngày…… tháng…… năm 2012 Giáo viên hướng dẫn GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường NHẬN XÉT CỦA GIẢNG VIÊN HẢN I N ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Khóa luận đáp ứng yêu cầu luận vănkĩ sư tin học TP.HCM, ngày…… tháng…… năm 2012 Giáo viên phản biện GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường MỤC LỤC Trang Chƣơng 1: Tổng Quan 1.1.Giới thiệu đề tài .2 1.2 Nội dung đề tài .2 1.3 Phạm vi đề tài .3 1.4 Mục tiêu cần đạt Chƣơng 2: Tổng quan iPhone 2.1 Sự phát triển iPhone 2.2 Quá trình phát triển dòng sản phẩm iPhone .5 2.2.1 Các dòng sản phẩm iPhone mắt thị trường 2.2.2 Thế giới chờ đợi iPhone 10 2.3.Chip A5 bước tiến dài cho việc chơi game thiết bị di động 10 2.3.1 Chip lõi kép A5 tốc độ GHz yếu tố giúp game iPhone tuyệt vời 10 2.3.2.Sức mạnh đồ họa gấp cho hiệu ứng dựng hình đẹp mắt 10 2.4.Game dành cho iPhone phát triển 11 2.4.1 Chơi game iPhone trở nên phổ biến giới 11 2.4.2 Thị trường game cho iPhone 13 Chƣơng 3: Game engine 2D cho i hone 14 3.1 Tổng quan game engine 14 3.1.1 Khái niệm game engine 14 3.1.2 API SDK 14 3.2 Game engine iPhone 15 3.2.1 Nhu cầu sử dụng game engine 2D cho phát triển game iPhone 15 GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 3.2.2 Lợi ích game engine 2D cho việc phát triển game iPhone 15 3.3 Một số game engine 2D cho iPhone 16 3.3.1 SDK Moai 16 3.3.1.1 SDK Moai ? 16 3.3.1.2 Môi trường sử dụng .17 3.3.1.3 Các đặc điểm SDK Moai 17 3.3.2 Multimedia Fusion 18 3.3.2.1 Multimedia Fusion ? 18 3.3.2.2 Các đặc điểm Multimedia Fusion 19 3.3.3 Sparrow Framework 19 3.3.3.1 Sparrow Framework ? 19 3.3.3.2 Các đặc điểm Sparrow Framework .20 3.3.4 Corona SDK 21 3.3.4.1 Corona 21 3.3.4.2 Các đặc điểm Corona SDK 21 3.4 Danh sách số game engine 2D khác dành cho iPhone 22 3.5 Thế mạnh iPhone so với engine khác 28 3.5.1 Cocos2D hồn tồn khơng trả phí 28 3.5.2 Cocos2D hổ trợ cộng đồng lớn 28 3.5.3 Cocos2D mã nguồn mở 29 3.5.4 Cocos2D 2D 29 3.5.5 Cocos2D ngày phát triển 30 3.5.6 Cocos2D dễ tích hợp 30 3.5.7 Cocos2D có cấu trúc tốt .30 3.5.8 Cocos2D viết hoàn toàn Objective C .30 3.5.9 Cocos2D hổ trợ tốt OpenGL 31 3.5.10 Cocos2D hổ trợ vật lý cao 31 GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 3.5.11 Cocos2D phát triển Android 31 3.5.12 Giấy phép sử dụng Cocos2D 32 3.5.13 Cocos2D hỗ trợ cơng ty giàu có 32 Chƣơng 4: Tổng quan Cocos2D 33 4.1 Cocos2D gì? 33 4.2 Thuận lợi phát triển game Cocos2D 34 4.3 Một số chức Cocos2D 34 4.3.1 Hành động (Actions) 34 4.3.2 Xây dựng hỗ trợ kiểu chữ 35 4.3.3 Một thư viện hiệu ứng mở rộng 35 4.3.4 TileMap tuyệt với 35 4.3.5 Hỗ trợ hệ thống âm 35 4.3.6 Sử dụng hai engine vật lí mạnh mẽ 35 4.4 Một số khái niệm quan trọng Cocos2D 36 4.4.1 Scenes 36 4.4.2 Director .37 4.4.3 Layers 37 4.4.4 Sprites 39 4.4.5 Singleton .39 4.4.6 OpenGL ES 39 4.4.7 2D với 3D 40 4.4.8 Ngôn ngữ Cocos2D 40 4.4.9 Mối quan hệ Scene, Director, Layer Sprite .40 Chƣơng 5: Một số yếu tố quan trọng Cocos2D 42 5.1 Singleton Cocos2D 42 GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 5.2.Driector 43 5.3 Scene Graph .43 5.4.Hệ thống cấp bậc lớp CCNode .44 5.4.1.CCNode 45 5.4.2.Làm việc với CCNode 45 5.4.3 Làm việc với Action 46 5.5 Scene 47 5.5.1 CCSence .47 5.5.2 Scene nhớ 47 5.5.3 Pushing Popping Scene 47 5.5.4 CCTransitionScene .48 5.6.CCLayer .49 5.7 CCSprite 49 5.7.1 Điểm neo(Anchor point) 50 5.7.2 Kích thước Texture .50 5.8 CCLabel .51 5.8.1 CCLabelTTF 51 5.8.2 CCLabelBMFont 52 5.9.Menu 52 5.10.Action(Hành động) 54 5.10.1 Lớp CCEaseAction 58 5.10.2 Action Sequences 58 5.10.3 Instant Action 59 Chƣơng 6: Một số kỹ thuật Cocos2D 60 6.1 Animation (hình ảnh hoạt hình) 60 GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 91 7.6.2 Level Hình 7.19 Level game Ball GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 92 Giới thiệu: Level xây dựng dựa đối tượng bao gồm: Chim, Ngôi sao, Bong bóng, Thanh gỗ di chuyển, Đạn Cách chơi: Người chơi di chuyển gỗ để di chuyển xoay với hướng tốt để va chạm với viên đạn chuyển hướng tới chim Người chơi tránh cho viên đạn va chạm với bong bóng để khơng cho viên đạn bay theo quỹ đạo khác với dự tính GVHD:PGS.TS Vũ Thanh Ngun – CH Nguyễn Cơng Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 93 7.6.3 Level Hình 7.20 Level game Ball GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 94 Giới thiệu: Level xây dựng dựa đối tượng bao gồm: Đạn, Chim, Bong bóng, gỗ cố định, gỗ di chuyển, tường Level có độ khó cao level trước có thêm điểm viên đạn trúng cành chim bay qua cành khác Cách chơi:Người chơi bắn trúng đích hai cách sau Dùng viên đạn bắn bể tường (1) sau di chuyển gỗ di chuyển (3) lên đầu thứ với góc lệch vừa phải phía chim Đưa gỗ di chuyển (3) lên đầu ngơi với góc lệch phía chim Xoay gỗ cố định (2) với góc lệch phía gỗ di chuyển trước Dùng viên đạn bắn phía gỗ cố định với vị trí chuẩn xác để chưa viên đạn tới vị trí gỗ di chuyển GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 95 7.6.4 Level Hình 7.21 Level game Ball Giới thiệu: Bao gồm đối tượng level xếp đối tượng vị trí khác so với level Có điểm khác so với level chổ viên đạn va chạm vào cành chim bay lên cành phía GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 96 Cách chơi: Bắn rơi tường (1) Di chuyển gỗ (3) sang hướng khác Xoay gỗ cố định (4) với góc lệch hướng chim Có thể di chuyển gỗ (2) (3) tới vị trí thích hợp để viên đạn tác động vào bắn trúng chim GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 97 7.6.5 Level Hình 7.22 Level game Ball GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 98 Giới thiệu: Level bao gồm đối tượng đạn chim Số lượng viên đạn số lượng chim bay Cách chơi: Người chơi dùng viên đạn để tiêu diệt chim bay cách ngẫu nhiên.Màn chơi dành chiến thắng tiêu hiệt hết chim GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 99 7.6.6 Level Hình 7.23 Level game Ball Giới thiệu: Level bao gồm đối tượng: Đạn, gỗ cố định, lò xo, cung tên, thanhg gỗ xoay, gạch domino, chim Sự xếp của vật tạo nên va chạm vật lý liên tiếp tạo cảm giác thực thích thú cho người chơi GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 100 Đây game mà nhóm muốn diễn tả tất va chạm vật lý khác game Cách chơi: Sử dụng viên đạn bắn vào nút bật lò xo (1) nhằm bắn trái banh màu đỏ khỏi vị trí ban đầu Thay đổi góc quay gỗ cố định (2) cho trái banh sau va chạm phải bay trúng vào cung tên (3) Sau trái banh va chạm với cung tên, tên bắn va chạm với quay Với lực vừa phải làm cho quay va chạm với làm quay (4) va chạm với domino Các domino va chạm với làm cho domino cuối rơi xuống va chạm với chim, dành chiến thắng GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 101 7.7.Mơ hình hóa chức 7.7.1 Actor Hình 7.24 Actor gamer Gamer: người chơi game, thao tác trực tiếp với game 7.7.2 User case gamer Hình 7.25 User case gamer Mơ tả: Người chơi game (Gamer) trực tiếp chọn level (SelectLevel) để bắt đầu với chơi game (GamePlay) Nếu người chơi thắng level tiếp tục chơi level (NextLevel), chơi lại với level (ReplyPlay), lại bảng chọn level (ReturnSelectLevel) GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 102 7.8 Các vấn đề gặp phải làm game 7.8.1 Xây dựng ý tƣởng game Vấn đề Việc xây dựng ý tưởng game quan trọng việc đinh hình thiết kế game hay Để lôi người chơi, có game có ý nghĩa q trình chơi quan trọng khó khăn Giải pháp Dựa vào game có nhiều người u thích thị trường để mơ game tương tự, song có sáng tạo riêng để tạo nên hấp dẫn lạ game Tuy nhiên khơng thể hồn hảo lơi game tốt tiếng có 7.8.2 Xây dựng cấu trúc game linh động Vấn đề Các level game thiết kế với cầu trúc khác nhau, đối tượng xếp cho độ khó level khác để tạo nên tính da dạng phong phú game Vì để xếp đối tượng cách dễ dàng thuận lợi tiết kiệm tối đa dòng code quan trọng Giải pháp Xây dựng lớp đối tượng cho đối tượng có thuộc tính tính riêng để qua level sử dụng đối tượng đó, cần thay đổi cách xếp đối tượng Độ khó mức phức tạp level phụ thuộc vào ý tưởng xếp đối tượng 7.8.3 Hình ảnh đối tƣợng game Vấn đề Hình ảnh game yếu tố quan trọng để hút người chơi hay khơng, game lơi người chơi hình ảnh đối tượng GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 103 game thật phải đẹp hấp dẫn Vì khả nhóm khơng phải chun nghiệp game nên hình ảnh xây dựng khơng thể với game có thị trường Giải pháp Xây dựng dựa hình ảnh có sẵn, dựa vào kỹ thuật photoshop để xây dựng hình ảnh đối tượng hình ảnh 7.8.4 Va chạm đối tƣợng Vấn đề Trong game chủ yếu vấn đề va chạm vật lý, viên đạn phải có phản xạ va chạm với vật thể khác để trúng mục tiêu chim Song việc va chạm đối tượng phải thật giống thực tế chân thực yêu cầu trò chơi Các đối tượng va chạm phản xạ phải hợp lý xác tạo chân thật game Giải Với chuyện Cocos2D hỗ trợ cách hiệu với Box2D, với thư viện có hỗ trợ tốt với tính tốn xác người lập trình vấn đề tính chân thực va chạm đối tượng giải tốt GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 104 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Các kết đạt Tổng quan lập trình game iPhone Xu hướng phát triển tương lai Tìm hiểu game engine hỗ trợ cho lập trình game iPhone Thấy sức mạnh Cocos2D việc phát triển game 2D cho iPhone Biết nhiều kĩ thuật physic engine(Box2D, Chipmunk), tileMap… Kiến trúc để xây dựng game 2D Xây dựng game nhỏ, thể mạnh game engine Hướng phát triển Phát triển thêm số chức năng, tính cho game hấp dẫn Tìm hiểu sau kĩ thuật engine game Cocos2D để phát triển nhều game, nhiều thể loại game Hoàn thiện ý tưởng dựa demo để phát triển thành sản phẩm mang tính thương mại GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường 105 Tài liệu tham khảo Sách [1] Learning Cocos2DRod Strougo, Ray Wenderlich [2] Learn iPhone and iPad cocos2d Game Development by Steffen Itterheim,2010 Website [1] http://cocos2d.org/doc/programming_guide/scenes.html [ 2] http://www.cocos2d-iphone.org/ [ 3] http://www.codeandweb.com [4] http://www.gimp.org GVHD:PGS.TS Vũ Thanh Nguyên – CH Nguyễn Công Hoan SVTH: Phạm Minh Cường – Nguyễn Văn Trường ... đó, khóa luận Nghiên cứu game engine Cocos2D viết ứng dụng minh họa , tìm hiểu trình phát triển iPhone hỗ trợ cho việc chơi game, game cho iPhone phát triển nào, tìm hiểu số game engine 2D iPhone,tìm... chọn Cocos2D để phát triển game 2D iPhone Nghiên cứu Cocos2D, định nghĩa, thuật ngữ, kỹ thuật bật Cocos2D dùng để phát triển game Xây dựng ứng dụng game nhỏ họa cho việc phát triển game engine Cocos2D. .. số game engine iPhone Rút nguyên nhân chon game engine Cocos2D làm nội dung khóa luận 3.1 Tổng quan game engine 3.1.1 Khái niệm game engine Thì game engine car’s engine gì ?Engine chả phải engine?