1. Trang chủ
  2. » Luận Văn - Báo Cáo

Game 3d GL racing trên andriod

50 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 0,98 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI : GAME 3D “GL RACING” TRÊN ANDROID SVTH: Bùi Thị Phương Đoan LỚP : 08CNTT2 CBHD : Nguyễn Thanh Tuấn Đà Nẵng, Ngày 22/4/2012 LỜI CẢM ƠN Tôi xin chân thành cảm ơn thầy cô giáo khoa Tin học tồn thể thầy trường Đại Học Sư Phạm Đà Nẵng truyền đạt cho kiến thức quý giá suốt năm học vừa qua Xin chân thành cảm ơn thầy Nguyễn Thanh Tuấn tận tình bảo giúp đỡ cho tơi hồn thành đồ án Cuối xin cảm ơn bạn lớp 08CNTT nói riêng khoa Tin nói chung, người giúp đỡ, chia sẻ kiến thức, kinh nghiệm, tài liệu…trong suốt trình học tập nghiên cứu thực đề tài Xin chân thành cảm ơn Đà Nẵng, ngày 11/05/2012 Sinh viên thực Bùi Thị Phương Đoan LỜI CAM ĐOAN Tôi xin cam đoan: - Những nội dung báo cáo thực - Mọi tham khảo dùng báo cáo 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á, xin chịu hoàn toàn trách nhiệm Sinh viên thực MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN PHẦN MỞ ĐẦU Giới thiệu đề tài: Mục đích, ý nghĩa đề tài: Phương án triển khai đề tài: CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 10 1.1 Ngôn ngữ C/C++: 10 1.2 Thư viện đồ hoạ OpenGL OpenGL ES: 11 1.2.1 OpenGL: 11 1.2.2 OpenGL ES: 14 1.3 Giới thiệu Android IOS: 15 1.3.1 Android: 15 1.3.2 IOS: 16 1.4 Giới thiệu 3D: 18 1.4.1 Hệ tọa độ 3D: 18 1.4.2 Quy tắc bàn tay trái – bàn tay phải: 18 1.4.3 Xác định điểm tọa độ 3D: 18 1.4.4 Các phép dịch chuyển 3D: 19 1.5 Cấu trúc game: 19 1.5.1 Game loof (Vòng lặp game): 19 1.5.2 Framerate (FPS): 20 1.5.3 Bộ nhớ (Memory): 21 1.5.4 State: 21 CHƯƠNG 2: PHÂN TÍCH GAME 22 2.1 Thiết kế chương trình: 22 2.2 Vòng lặp trò chơi 23 2.3 Trạng thái trò chơi 24 2.4 Đặt vấn đề 24 2.5 Giải vấn đề: 25 2.5.1 Cách tải Modle: 25 2.5.2 Cách xử lý để xe chạy đồ: 29 2.5.3 Cách xử lý độ thông minh nhân tạo(AI) cho xe máy điều khiển 29 2.5.4 Cách xử lý va chạm xe 30 2.5.5 Cách xử lý để chương trình chạy android: 30 CHƯƠNG 3: QUÁ TRÌNH THỰC HIỆN ĐỀ TÀI 31 3.1 Xây dựng cấu trúc source: 31 3.1.1 External Dependencies 31 3.1.2 Header file 31 3.1.3 Source file 32 3.2 Giải nhiệm vụ cá nhân: 32 3.2.1 Va chạm xe: 32 3.2.2 Va chạm xe map: 35 3.2.3 Chuyển game lên Android: 38 CHƯƠNG 4: KẾT LUẬN 44 4.1 Kết đạt được: 44 4.1.1 Màn hình “Flag Screen” chứa logo tên nhóm: 44 4.1.2 Màn hình “Menu Screen”: 45 4.1.3 Màn hình “Loading Screen”: 45 4.1.4 Màn hình “Help Screen”: 46 4.1.5 Màn hình “About Screen”: 46 4.1.6 Màn hình “Option Screen”: 47 4.1.7 Modle xe đích đến: 47 4.1.8 Cảnh Game: 48 4.2 Những thứ chưa đạt được: 48 4.3 Hướng phát triển: 48 TÀI LIỆU THAM KHẢO 50 Danh mục hình ảnh Chương Hinh 1.Đường ống dẫn OpenGL 12 Hinh 2.Đường ống liên kết OpenGL với API 14 Hinh Đường ống dẫn OpenGL ES 15 Hinh Biễu diễn hệ tọa độ 3D 18 Hinh Biễu diễn quy tắc bàn tay trái- bàn tay phải 18 Hinh Biễu diễn điểm hệ tọa độ 3D 18 Chương Hình 1: Biễu diễn khung thiết kế chương trình 22 Hình 2: Cách kế thừa lớp trừ tượng tảng khác 23 Hình 3: Quá trình vẽ 24 Hình 4: Trạng thái trị chơi 24 Chương Hình Màn hình Flag Screen 44 Hình Menu Screen 45 Hình Loading Screen 45 Hình Help Screen 46 Hình 5 About Screen 46 Hình Option Screen 47 Hình Modle xe đích đến 47 Hình Cảnh game 48 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn PHẦN MỞ ĐẦU Giới thiệu đề tài: Với đà phát triển thông tin di dộng nay, thiết bị di động trở thành trợ thủ thiếu đa số người Các trị chơi giải trí di động ngày đa dạng Đặc biệt đời hệ điều hành android IOS tạo bước phát triển cho ứng dụng di động Công nghệ game ngày phát triển Tuy nhiên đa số game làm dạng 2D Thời gian gần xu hướng game game dạng 3D ưa chuộng Vì vậy, thân em chọn đề tài nhằm muốn nghiên cứu kỹ thuật làm game 3D hệ điều hành ANDROID Bước đầu xây dựng demo chương trình game đơn giản phục vụ cho trình nghiên cứu công việc tương lai sau Mục đích, ý nghĩa đề tài: ¾ Củng cố kiến thức học nghiên cứu, tìm hiểu hệ điều hành android, nghiên cứu công nghệ làm game 3D ¾ Nghiên cứu cách xây dựng game đa tảng, q trình chuyển từ windows sang Android ¾ Xây dựng trò chơi “GL Racing” hệ điều hành android, Windows Phương án triển khai đề tài: Để hồn thành đề tài này, q trình triển khai thực cần tuân thủ bước sau: ¾ Lập kế hoạch thực đề tài SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn ¾ Thiết kế hệ thống source liệu ¾ Xây dựng chương trình (chia nhỏ chức thành module component để giải phần) ¾ Củng cố kết đạt (bao gồm kiểm thử module chức hệ thống, chỉnh sửa lỗi có tiến tới hồn thiện chương trình mức có thể) ¾ Song song với giai đoạn trình học hỏi, tích góp tài liệu kiến thức công cụ liên quan nhằm phục vụ cho việc xây dựng hoàn thiện đề tài SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 Game đua xe 3D Andriod CHƯƠNG 1: 1.1 GVHD: Th.S Nguyễn Thanh Tuấn CƠ SỞ LÝ THUYẾT Ngôn ngữ C/C++: Ngôn ngữ lập trình loại cơng cụ giúp người thể vấn đề thực tế lên máy tính cách hữu hiệu Với tiến hóa tin học, ngơn ngữ lập trình dần tiến hóa để đáp ứng thách thức thực tế Khoảng cuối năm 1960, đầu năm 1970 xuất nhu cầu cần có ngơn ngữ bậc cao để hỗ trợ cho nhà tin học việc xây dựng phần mềm hệ thống, hệ điều hành Ngơn ngữ C đời từ đó, đa đuợc phát triển phịng thí nghiệm Bell Đến năm 1978, giáo trình “ngơn ngữ lập trình C” tác giả ngôn ngữ Dennish Ritchie B.W.Kernighan viết, xuất phổ biến rộng rãi C ngơn ngữ lập trình vạn Ngồi việc C dùng để viết hệ điều hành UNIX, người ta nhanh chóng nhận sức mạnh C việc giải vấn đề tin học C khơng gắn với hệ điều hành hay máy nào, đuợc gọi “ngơn ngữ lập trình hệ thống” dùng cho việc viết hệ điều hành, tiện lợi cho việc viết chương trình xử lý số, xử lý văn sở liệu Đặc điểm ngơn ngữ lập trình C: Tính đọng (compact): C có 32 từ khóa chuẩn 40 toán tử chuẩn, hầu hết đuợc biểu diễn chuỗi ký tự ngắn gọn Tính cấu trúc (structured): C có tập hợp thị lập trình cấu trúc lựa chọn, lặp… Từ chương trình viết C tổ chức rõ ràng, dễ hiểu Tính tương thích (compatible): C có tiền xử lý thư viện chuẩn SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 10 Game đua xe 3D Andriod SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 GVHD: Th.S Nguyễn Thanh Tuấn 36 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn b Nếu phát xe nằm bờ tường ta xử lý cách xử dụng đệ qui để chia điểm đầu với điểm cuối xe đưa điểm cuối điểm nằm xa bờ tường điểm vừa tính tốn đến kiểm tra xe nằm map dừng lại Hàm đệ qui viết sau: SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 37 Game đua xe 3D Andriod 3.2.3 GVHD: Th.S Nguyễn Thanh Tuấn Chuyển game lên Android: a Cài đặt phần mềm: Để tạo môi trường phát triển Android ta cần cài đặt công cụ sau: - Java SDK: yêu cầu để chạy ứng dụng Java - Cygwin 1.7 trở sau: dùng để giả lập môi trường phát triển linux, gcc chạy NDK - Android SDK: cần thiết để biên dịch, đóng gói ứng dụng Android Ngồi Android SDK cịn cung cấp cho công cụ để tương tác với thiết bị di động, giả lập - Android NDK: Dùng để biên dịch mã nguồn C thư viện từ gọi từ java SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 38 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn Hoạt động JNI quy trình biên dịch: b Như biết, ứng dụng android chạy Java Muốn chạy C/C++ ta có hai giải pháp: - Sử dụng JNI: từ android 1.5 trở sau - Sử dụng Native Activity: từ android 2.3 trở sau Native Activity phương án lựa chọn tốt hơn, chương trình khơng tốn chi phí giao dịch máy ảo Java C/C++ Tuy nhiên, tới thời điểm tại, số lượng thiết bị hỗ trợ Android 2.3 tương đối nên sử dụng giải pháp JNI ¾ Hoạt động JNI mô tả sau: - Các phương thức JNI đánh dấu từ khóa native - Các phương thức viết C++ biên dịch thư viện liên kết động so - Thư viện liên kết động Load lên chương trình Java lời gọi 6\VWHPORDG/LEUDU\ «  - Khi chương trình Java có lời gọi tới hàm native, máy ảo Java tìm kiếm thư viện động xem hàm cài đặt chưa, sau đối tượng Java chuyển thành C++ để thực lời gọi tới C++ - Trong C++ cung cấp thư viện cho phép giao tiếp tới máy ảo chương trình Java ¾ Quy trình xây dựng chương trình có sử dụng JNI sau: - Khai báo phương thức native lớp Java SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 39 Game đua xe 3D Andriod - GVHD: Th.S Nguyễn Thanh Tuấn Khai báo cài đặt phương thức C (Nếu C++ phải sử dụng extern “C” để tránh sửa tên C++) Quy tắc đặt tên hàm sau: - tengoi_tenlop_tenphuongthuc - Sau dùng NDK để biên dịch mã nguồn C thành thư viện liên kết động thư viện tự động bỏ vào thư mục lib dự án android - Viết chương trình java gọi hàm native - Dùng SDK để biên dịch thành ứng dụng apk Do bước sử dụng NDK để biên dịch thực dấu nhắc lệnh, tạo tập tin lệnh để thực điều c Đồ họa: Android hỗ trợ OpenGLES 2.0 NDK từ phiên 2.1 trở sau Và ví dụ NDK có sẵn ví dụ thực thi với OpenGL ES 2.0 nên ta sử dụng ví dụ này, sau thay đổi thành phần để tải ứng dụng C++ chạy lên Ngoài để biên dịch với OpenGL ES 2.0 make file dự án NDK ta phải thêm dòng LOCAL_LDLIBS := -llog -lz -lGLESv2 d Âm thanh: NDK không hỗ trợ chơi âm Android phiên 2.2 trở sau Do sử dụng Java để chạy tập tin âm ¾ Phần tải tập tin âm thanh, Play Sound StopSound cài đặt Java: SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 40 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn Trong C++, ta cài đặt hàm PlaySound Stop Sound cách gọi tới hàm PlaySound đối tượng Java e Cảm ứng chạm (touch): Trong ứng dụng Android, ta nhận kiện cảm ứng chạm thông qua hàm OnTouchEvent SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 41 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn Từ ta gọi đến hàm native C++ xử lí f o Cảm ứng gia tốc: Đầu tiên ta lắng nghe kiện cho x, y, z function: SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 42 Game đua xe 3D Andriod o GVHD: Th.S Nguyễn Thanh Tuấn Sau truyền giá trị x, y, z vào hàm sau xử lý cảm biến theo chiều trục y: SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 43 Game đua xe 3D Andriod CHƯƠNG 4: GVHD: Th.S Nguyễn Thanh Tuấn KẾT LUẬN 4.1 ͇WTX̫ÿ̩Wÿ˱ͫF 4.1.1 Màn hình “Flag Screen” chứa logo tên nhóm: Hình Màn hình Flag Screen SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 44 Game đua xe 3D Andriod 4.1.2 GVHD: Th.S Nguyễn Thanh Tuấn Màn hình “Menu Screen”: Hình Menu Screen 4.1.3 Màn hình “Loading Screen”: Hình Loading Screen SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 45 Game đua xe 3D Andriod 4.1.4 GVHD: Th.S Nguyễn Thanh Tuấn Màn hình “Help Screen”: Hình Help Screen 4.1.5 Màn hình “About Screen”: Hình 5 About Screen SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 46 Game đua xe 3D Andriod 4.1.6 GVHD: Th.S Nguyễn Thanh Tuấn Màn hình “Option Screen”: Hình Option Screen 4.1.7 Modle xe đích đến: Hình Modle xe đích đến SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 47 Game đua xe 3D Andriod GVHD: Th.S Nguyễn Thanh Tuấn Cảnh Game: 4.1.8 Hình Cảnh game 4.2 Những thứ chưa đạt được: - Chưa làm hình nhập tên người chơi - Chưa lưu người chơi có mức điểm cao - Chỉ có người chơi AI - Chưa tạo nhiều level trò chơi 4.3 +˱ͣQJSKiWWUL͋Q - Tạo thêm nhiều AI để đua với người chơi để tăng tính hấp dẫn - Tăng khả đua AI để đua thật - Tạo hình nhập tên cho người chơi để lưu người chơi có điểm số cao SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 48 Game đua xe 3D Andriod - GVHD: Th.S Nguyễn Thanh Tuấn Cho phép game kết nối đến server để nhiều người chơi chơi - Tạo nhiều level để phân cấp độ khó cho trị chơi SVTH: Bùi Thị Phương Đoan, Lớp: 08CNTT2 49 ... OpenGL B 8-bit integer Signed char Glbyte S 16-bit integer Short Glshort I 32-bit integer Int or long Glint, Glsizei F 32-bit floatingpoint Float GLfloat, Glclampf 64-bit floatingpoint Double Glbouble,... Công nghệ game ngày phát triển Tuy nhiên đa số game làm dạng 2D Thời gian gần xu hướng game game dạng 3D ưa chuộng Vì vậy, thân em chọn đề tài nhằm muốn nghiên cứu kỹ thuật làm game 3D hệ điều... Us Ui GLclampd 8-bit unsigned integer Unsigned char GLubyte, GLboolean 16-bit unsigned Unsigned short GLushort integer 32-bit unsigned Unsigned int or GLuint, integer unsigned long GLenum, GLbitfield

Ngày đăng: 26/06/2021, 13:14

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trang web: http://fly.cc.fer.hr/~unreal/theredbook/ Link
[3] Trang web: http://glprogramming.com/red/ Link
[2] Lê Phong: Hướng dẫn lập trình OpenGL căn bản Khác
[4] Lê Tấn Hùng, Huỳnh Quyết Thắng: kỹ thuật đồ họa. Nhà xuất bản khoa học và kỹ thuật, Hà Nội-2000 Khác
[5] Donald Hearn, M. Pauline Baker: Computer Graphics, Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1986 Khác
[6] Một số giáo trình, tài liệu khác từ các thầy cô trong khoa và từ nơi thực tập kết hợp với kinh nghiệm từ thực tiễn Khác

TỪ KHÓA LIÊN QUAN

w