Đồ án tốt nghiệp lập trình mobile game phá gạch

32 720 0
Đồ án tốt nghiệp lập trình mobile game phá gạch

Đ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

BỘ LAO ĐỘNG THƯƠNG BINH VÀ Xà HỘI TRƯỜNG CAO ĐẲNG NGHỀ ISPACE  KHOA : CÔNG NGHỆ THÔNG TIN NGÀNH: LẬP TRÌNH MOBILE -ĐỒ ÁN TỐT NGHIỆP PHÁ GẠCH GVHD: LÊ HỒNG KỲ SVTH : ĐỖ QUANG VINH - 97510230009 NGUYỄN MINH TRIẾT - 97510230011 VÕ TẤN ĐẠT - 99510230118 TP Hồ Chí Minh, Năm 2015 Đồ án tốt nghiệp, Game Breakout LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn đến tất quý thầy cô tham giagiảng dạy chương trình cao đẳng ngành công nghệ thông tin Trường Cao Đẳng nghề ISPACE truyền đạt kiến thức hữu ích làm sở cho em thực đồ án Em xin chân thành cảm ơn đến thầy Lê Hồng Kỳ, người tận tình hướng dẫn, tạo điều kiện thuận lợi để em hoàn thành tốt đồ án Sau em xin gửi lời biết ơn sâu sắc đến gia đình tạo điều kiện cho em suốt trình học tập thực đồ án Do thời gian có hạn kinh nghiệm chưa nhiều nên đồ án nhiều thiếu sót, mong nhận ý kiến góp ý quý Thầy/Cô anh chị bạn Đồ án tốt nghiệp, Game Breakout TÓM TẮT ĐỒ ÁN Trò chơi Phá Gạch thể loại game cổ điển thuộc thể loại game Break-Out thịnh hành từ lâu với nhiều phiên thể loại khác Nay nhóm em viết lại phát triển thêm chi tiết mẻ thú vị cho game hệ điều hành Android Luật chơi đơn giản đòi hỏi khéo léo, nhanh nhẹn độ tập trung vào game cao người chơi Mục tiêu đồ án đúc kết tất kiến thức mà nhóm giảng dạy để xây dựng trò chơi thiết bị di động chạy hệ điều hành Android Đồ án tốt nghiệp, Game Breakout MỤC LỤC CHƯƠNG : TỔNG QUAN 1.1 LỊCH SỬ PHÁT TRIỂN5 1.2 GIỚI THIỆU 1.2.1 Luật Chơi 1.2.2 Bố Cục Trò Chơi CHƯƠNG : PHÂN TÍCH VÀ THIẾT KẾ 2.1 PHÂN TÍCH 2.1.1 Cấu Trúc Chương Trình 2.1.2 Nhiệm Vụ Các Lớp 2.2 THIẾT KẾ 2.2.1 Giao Diện 2.2.2 Sơ Đồ Liên Kết CHƯƠNG : XÂY DỰNG CHƯƠNG TRÌNH 3.1 CÀI ĐẶT MÔI TRƯỜNG 10 3.1.1 Giới Thiệu LibGDX 10 3.1.2 Cài Đặt LibGDX 11 3.2 VIẾT XỬ LÝ TỪNGLỚP 3.2.1 Lớp Lưu Trữ 12 3.2.2 Các LớpGiao Diện 13 3.2.2.1 Màn Hình Chuyển & Màn Hình Menu Chính 13 3.2.2.2 Màn Hình Tuy Chọn 15 3.2.2.3Màn Hình Hiển Thị Điểm 15 3.2.2.4Màn Hình Hướng Dẫn 16 3.2.2.5Màn Hình Menu Tạm Dừng 17 Đồ án tốt nghiệp, Game Breakout 3.2.3 Các Lớp Khác 18 3.2.3.1Banh .18 3.2.3.2Thanh Trượt 18 3.2.3.3Gạch .19 3.2.3.4Vật Phẩm 20 3.2.3.5 Banh Phụ 21 3.2.4 Các Lớp Sự Kiện .22 3.2.4.1Va Chạm 22 3.2.4.2Hiệu Ứng 26 3.2.4.3Điểm Số 27 3.2.4.4Nút Bấm Cơ Bản 28 3.3 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN29 3.3.1 Kết Quả Đạt Được 3.3.2 Hướng Phát Triển Đồ án tốt nghiệp, Game Breakout CHƯƠNG : TỔNG QUAN 1.1 LỊCH SỬ PHÁT TRIỂN Game Breakout phát triển Atati Incvaf giới thiệu từ năm 1976 Nó chế tạo Nolan Bushnell Steve Bristow, Breakout chịu ảnh hưởng lớn game Pong phổ biến phát hành năm 1972 Trong cuối năm 70, máy tính cá nhân chỉ truy cập cho viện nghiên cứu chỉ dành cho thí nghiệm trò chơi Breakout chỉ phát triển trò chơi điện tử Nhờ bùng nổ xuất hiện, Breakout trở nên tiếng phát hành 20 trò chơi Breakout Bản Breakout thực phát hành cho mỗi tảng, từ trò giao diện điều khiển máy vào năm 1976 đến PS3 vào năm 2009.Và năm 2007 có thay đổi lớn Breakout phát hành Breakout trò chơi tạo cho điện thoại di động tảng BlackBerry Breakout phá kỷ luật doanh số tái thành lập thể loại phong cách Breakout Ngày internet phát triển, nhiều trò chơi phong cách Breakout tải lên mạng thành công nhanh chóng Breakout thúc đẩy phát triển tốt game 1.2 GIỚI THIỆU 1.2.1 Luật Chơi Người chơi điều khiển trượt phía cửa sổ sang trái hoặc sang phải để đỡ bóng thay đổi hướng di chuyển phá viên gạch xuất chơi Nhiệm vụ người chơi phải phá vỡ hết viên gạch để chiến thắng Người chơi có lượt hội chơi, mỗi lần để bóng qua khỏi trượt hoặc ăn phải vật phẩm xấu chơi lượt chơi bị Nếu chưa phá hết gạch mà hết lượt chơi thua trò chơi kết thúc Ngược lại phá hết tất số gạch có chơi chiến thắng 1.2.2 Bố Cục Trò Chơi Khi mở trò chơi, người chơi thấy hình chuyển Game (SplashScreen) Đồ án tốt nghiệp, khoảng thời gian qui định, sau chuyển tới hình Menu.Game Breakout Trong Menu có nút bấm chuyển tới hình khác baogồm: -Bắt đầu: bắt đầu lượt chơi -Điểm : xem top điểm cao -Thoát: thoát game -Tùy chỉnh : bật tắt nhạc hiệu ứng game -Hướng dẫn : giới thiệu cách chơi CHƯƠNG : PHÂN TÍCH VÀ THIẾT KẾ 2.1 PHÂN TÍCH 2.1.1 Cấu Trúc Chương Trình - Để quản lý lớp thành phần thực thi nhiệm vụ khác game ta cần tạo chia Package riêng biệt Mỗi Package chứa Class xây dựng đối tượng hay thành phần chứa thuộc tính hoặc chức tương tự Điều giúp ta dễ dàng truy xuất hay tìm kiếm,chỉnh sửa Class game - Cấu trúc game cần xây dựng : Package com.mygdx.objects (chứa đối tượng chương trình) Class Ball_Main Class Paddle_Main Đồ án tốt nghiệp, Game Breakout Class Brick_Main Class Items Class Ball_Item Package com.mygdx.assets (lưu trữ tất liệu xuyên suốt chương trình) Class Assets Package com.mygdx.event (các kiện, trạng thái đối tượng xảy ra) Class Collision, Class Effect_Item Class Game_Score Class SimpleButton Package com.mygdx my_break_out (các lớp chủ yếu sử dụng LibGDX để chạy chương trình) Class Main_my_break_out Class GameScreen Class Game_Render Package com.mygdx.screen (các hình tạo chương trình, có liên kết,chuyển đổi theo lựa chọn người dùng) Class HelperScreen Class MenuPause ClassMenuScreen Class OptionScreen Class ScoreScreen Class SplashScreen 2.1.2 Nhiệm Vụ Các Lớp Các Class game có nhiệm vụ: Gói com.mygdx.objects gồm có: - Class Ball_Main:khởi tạo giá trị cho trái bóng, vẽ thực thi trạng thái, hành động mà trái bóng xảy - Class Paddle_Main: Khởi tạo giá trị cho trượt, vẽ thực thi trạng thái, hành động mà trượt xảy - Class Brick_Main: Khởi tạo giá trị cho mảng gạch, vẽ thực thi trạng thái, hành động đối tượng gạch xảy theo cấp độ - Class Items: Khởi tạo giá trị cho vật phẩm, vẽ thực thi trạng thái, hành động mà vật phẩm xảy ra(nếu có xuất hiện) - Class Ball_Item: Khởi tạo giá trị cho trái bóng phụ sinh vật phẩm, vẽ thực thi trạng thái, hành động mà trái bóng phụ xảy ra(nếu có) Gói com.mygdx.assets gồm có : - Class Asset: Lưu hằng số chung trạng thái game - Class Game_Score: Vẽ xử lý thành phần liên quan điểm game Gói com.mygdx.event gồm có : Đồ án tốt nghiệp, Breakout - Class Colision: Xét trả trạng thái để phát sinh hành động,Game kiện hay phát sinh đối tượng xảy va chạm đối tượng game trái bóng, trượt, gạch, vật phẩm, trái bóng phụ - Class Simplebutton: Tạo nút bấm riêng tùy thích bằng Texture - Class Effect_items: Xét trả trạng thái để phát sinh hành động, kiện hay đối tượng xảy va chạm trượt vật phẩm tương ứng Gói com.mygdx.screen gồm có : - Class SplashScreen: Màn hình chuyển vào game - Class MenuScreen: Màn hình menu - Class OptionScreen: Màn hình tùy chỉnh âm thanh, hiệu ứng - Class ScoreScreen: Màn hình xem điểm - Class HelperScreen: Màn hình hướng dẫn cách chơi game - Class MenuPause: Màn hình menu chơi game Gói com.mygdx.my_break_out gồm có : - Class Main_my_break_out: Là lớp thừa kế Game lớp quan trọng gọi để chạy game - Class GameSceen: Là lớp quan trọng không lớp Main_my_break_out thừa kế chức thuộc tính xây dựng sẵn LibGDX để thực thay đổi game - Class Game_render: Vẽ tất thứ game theo đối tượng, trạng thái, hành động, kiện xảy thời điểm 2.2 THIẾT KẾ 2.2.1 Giao Diện - Các giao diện hình game chứa gói com.mygdx.screen - Mỗi giao diện phân tích có chức riêng giao diên có liện kết chặt chẽ để người chơi chuyển từ hình sang hình khác với loại chức theo nhu cầu người chơi 10 Đồ án tốt nghiệp, Game Breakout Hình 2.1 Các lớp giao diện hình Game 2.2.2 Sơ Đồ Liên Kết 18 án người tốt nghiệp, Game Breakout - Màn hình menu Tạm Dừng xuất chơi gameĐồmà chơi bấm vào nút tạm dừng góc hình - Màn hình menu Tạm Dừng chứa thành phần tương tự hình cài đặt Gồm nút Menu Chính, nút Tiếp Tục, nút tắt mở âm thanh… Hình 3.14 Màn hình chơi lúc bấm tạm dừng - Màn hình menu Tạm Dừng cài đặt Screen GestureListener - Các nút menu Tạm Dừng xử lý trạng thái tương tự hình chọn Có nhiều cách khác để tạo nút - Ở ta tạo nút bấm từ lớp simple_button tự xây dựng (kể nút tạm dừng góc phải hình để hoặc đóng menu Tạm Dừng) - Ta tạo hàm kiểm tra xác định tọa độ lúc người dùng chạm vào hình phương thức tap() Nếu trùng với tọa độ nút bấm thay đổi trạng thái âm hoặc hiệu ứng bật/tắt - Đồng thời, ta xử lý trạng thái đối tượng di chuyển hình chơi game lúc theo nút Tạm Dừng Nếu trạng thái nút Tạm Dừng true trạng thái Dừng qui định mỗi đối tượng xét theo true,và ngược lại - Sau gọi lại hàm cập nhật trạng thái, hình ảnh âm hoặc hiệu ứng render() 19 Đồ án tốt nghiệp, Game Breakout Hình 3.15 Hàm hiển thị menu tạm dừng chơi game 3.2.3 Các lớp khác 3.2.3.1 Lớp Banh : - Tạo hàm vẽ Trái Banh có tọa độ (x,y) kích thước (w,h) tốc độ speedX, speedY public Ball_Main(Vector2 pos,Vector2 Siz,speedX,speedY); - Sau vẽ xong ta cần tạo phương thức xác định khung bao quanh Trái Banh để kiểm tra va chạm Trái Banh với đối tượng khác setbound_circle = new Circle(position.x+size.x/2,position.y+size.x/2,r); - Tạo hàm cập nhật thay đổi vị trí,kích cỡ, hiệu ứng, tốc độ di chuyển hướng di chuyển Trái Banh xảy kiện tương ứng Vẽ lại Trái Banh sau gọi hàm cập nhật Hình 3.16 Hàm vẽ trái banh 3.2.3.2 Lớp Thanh Trượt -Tạo hàm vẽ trượt có tọa độ(x, y) kích thước(w, h) public Paddle_Main(Vector2 pos,Vector2 Size) - Sau vẽ xong ta cần tạo phương thức xác định khung bao quanh trươt để kiểm tra chạm trượt với đối tượng khác setbound = new Rectangle(position.x,position.y,size.x,size.y); 20 Đồ án tốt nghiệp, Game Breakout - Tạo hàm cập nhật thay đổi vị trí, kích cỡ, hiệu ứng trượt khixảy kiện tương ứng Vẽ lại trượt sau gọi hàm Hình 3.17 Hàm vẽ trượt 3.2.3.3 Lớp Gạch - Hàm khởi tạo vẽ đối tượng gạch tương tự hàm đối tượngbanh, trượt vật phẩm, với tham số vị trí (x,y) kich thước (w,h) tham số cấp độ để vẽ đối tượng theo cấp độ khác Tạo hàm xác đĩnh khung bao tương tự đối tượng khác public Brick_Main(Vector2 pos,Vector2 Size,int type) setbound = new Rectangle(position.x,position.y,size.x,size.y); - Tạo hàm khởi tạo mảng gạch với tham số (số lượng phần tử n, tọa độ x,y bắt đầu, tọa độ x,y tiếp theo) //Khoitao map Bricks(n,Xfirst,Xnext,Yfirst,Ynext) w =540 wbrick = 60 init_brick_list(30, 11, 76, h/2,60); Hình 3.18 Hàm khởi tạo giá trị cho mảng gạch 21 Đồ ántatốtdùng nghiệp, Game Breakout - Tạo hàm vẽ mảng gạch khởi tạo giá trị trước Ở đây, array_list quản lý tất đối tượng gạch tạo Và muốn truy xuất hoặc xóa phần tử chỉ định ta dùng Iterrator để truy xuất mảng Hình 3.19 Phương thức vẽ mảng gạch khởi tạo 3.2.3.4 Lớp Vật Phẩm - Hàm khởi tạo vật phẩm với tham số tọa độ (x,y) kích thước (w,h) cấp độ random theo cấp độ gạch public Items(Vector2 pos,Vector2 size,int level_brick) - Vật phẩm xuất sau xảy va chạm banh viên gạch - Để game tồn yếu tố may rủi, tạo hàm xuất vật phẩm theo tỉ lệ hên xui từ biến số random() - Vd: cho random(5) qui định số xuất vật phẩm, tỉ lệ xuất 1/6 Tương tự random(9) tỉ lệ xuất 1/10 - Đồng thời qui định cấp độ vật phẩm tương ứng với cấp độ viên gạch va chạm Nếu cấp độ cao, vật phẩm hữu dụng tỉ lệ xuất thấp hơn, ngược lại Hình 3.20 Hàm khởi tạo giá trị cho vật phẩm 22 tốt nghiệp, Breakout - Sau tạo hàm vẽ phần tử mảng gạch (nếuĐồ cóánxuất hiện).Game Với cấp độ khác cho ta trạng thái thay đổi hiệu ứng khác Hình 3.21 Hàm khởi tạo mảng chứa vật phẩm xuất 3.2.3.5 Lớp Banh Phụ - Những banh phụ sinh từ vật phẩm.Tương tự lớp đối tượng khác, ta xây dựng hàm khởi tạo giá trị cho banh vật phẩm với tham số tọa độ(x,y) kích cỡ(w,h) tốc độ_X, tốc độ_Y - Tạo hàm xác định khung bao đối tượng để xử lý va chạm Hình 3.22 Hàm khởi tạo giá trị cho banh phụ - Ở ta không dùng lại lớp vẽ trái banh tính chất game với nhiều lý khác như: + Mục tiêu game thắng hay thua xác định trái banh chính, banh phụ chỉ hỗ trợ điểm số phá gạch + Lớp banh ta khởi tạo thiết lập giá trị tốc độ di chuyển cho cố định theo số trường hợp.Còn banh phụ lớp actor để tạo mảng banh vật phẩm xuất theo tùy theo kiện có tốc độ hướng di chuyển random() Vì ta tách riêng để xử lý theo arrayList banh phụ sinh 23 án tốtthì nghiệp, Game - Nếu người chơi ăn vật phẩm X3 có tỉ lệ xuất làĐồ1/10 sinh raBreakout thêm trái banh di chuyển với tốc độ random() - Những trái banh phụ sau xử lý va chạm với đối tượng khác để thay đổi hướng di chuyển tương tự trái banh H ình 3.23 Hàm khởi tạo giá trị “n” trái banh phụ sinh 3.2.4 Các lớp xử lý kiện 3.2.4.1 Va Chạm -Để chuyển động đối tượng game thật đa dạng, ta xét tình va chạm đối tượng với chuẩn xác góc, cạnh phương, hướng hoặc tình đối tượng di chuyển 3.2.4.1.1 Banh(Banh Phụ) va chạm với Gạch rx_banh: tâm trái banh với tọa độ x = ? ry_banh: tâm trái banh với tọa độ y = ? speedX_banh: tham số tốc độ di chuyển theo trục hoành trái banh speedY_banh: tham số tốc độ di chuyển theo trục tung trái banh w_banh: Chiều rộng banh ; h_banh : Chiều cao banh ; w_gạch : Chiều rộng gạch ; h_gạch : Chiều cao gạch ; Hướng vào : Hướng : Phạm vi banh di chuyển 24 Banh di chuyển với x+, y+ Đồ án tốt nghiệp, Game Breakout TH 1:Nếu rx_banh >= x_gach ry_banh < y_gach speedY_banh = - (speedY_banh) TH 2:Nếu rx_banh y_gach speedX_banh = - (speddX_banh) Banh di chuyển với x+,yTH 1: Nếu rx_banh >= x_gach ry_banh > y_gach+h_gach speedY_banh = (speddY_banh) TH 2: Nếu rx_banh < x_gach ry_banh >= y_gach+h_gạch speedY_banh = (speddY_banh) ; speedX_banh = -(speedX_banh) ; 25 Đồ án tốt nghiệp, Game Breakout TH 3: Nếu rx_banh < x_gach ry_banh < y_gach +h_gạch speedX_banh = - (speddX_banh) speedY_banh = - (speddY_banh) ; Banh di chuyển với x-,yTH 1: Nếu rx_banh y_gach+h_gach speedY_banh = (speddY_banh) TH 2: Nếu rx_banh > x_gach ry_banh >= y_gach+h_gạch speedY_banh = (speddY_banh) ; speedX_banh = (speedX_banh) ; TH 3: Nếu rx_banh > x_gach+w_gạch ry_banh < y_gach+h_gach speedX_banh = (speddX_banh) speedY_banh = - (speddY_banh) ; 26 Banh di chuyển với x-,y+ Đồ án tốt nghiệp, Game Breakout TH 1: Nếu rx_banh x_gach+w_gach ry_banh x_gach+w_gạch ry_banh > y_gach speedX_banh = (speddX_banh) speedY_banh = (speddY_banh) ; - Đối với viên gạch xảy va chạm, ta xử lý xóa viên gạch vị trí va chạm cập nhật lại mảng gạch hình bằng hàm sau Hình 3.24 Hàm xóa phần tử mảng cập nhật lại - Gọi hàm hàm kiểm tra va chạm publicvoid ball_collis_brick (Brick_Main pos) 27 án tốtmà nghiệp, Game Breakout - Hàm kiểm tra va chạm gọi hàm tạo mảngĐồgạch ta khai báo publicvoid create_list_bricks_and_check_collision (arl) - Ta dùng giải thuật Đệ Quy Tương Hổ cho hàm render() nhằm cập nhật trạng thái liên tục xác cho phần tử mảng gạch 3.2.4.1.2 Banh(Banh Phụ) Thanh Trượt - Xử lý va chạm banh trượt tương tự va chạm banh gạch có cấu trúc - Đối với mảng Banh Phụ, ta dùng giải thuật đệ quy tương hổ mảng gạch với hàm publicvoid create_list_ball_effect_and_check_collision(ArrayListarl) publicvoid update_stage_ball(ArrayListarl,Ball_Item pos) publicvoid ball_effect_colis_brick1 (Brick_Main pos_brick) 3.2.4.1.3 ThanhTrượt Vật Phẩm - Nếu va chạm xảy vật phẩm trượt vật phẩm biến mất,xóa vật phẩm khỏi mảng chứa cập nhật lại mảng tương tự mảng banh phụ hay mảng gạch publicvoid create_list_items_and_check_collision (ArrayListarl) publicvoid pad_colis_item(Items pos) publicvoid update_stage_items(ArrayListarl,Items pos)  Ngoài đối tượng Banh Phụ hoặc Vật Phẩm rơi qua trượt chạm biên hình xử lý xóa đối tượng 3.2.4.2 Lớp xử lý hiệu ứng - Lớp tạo với nhiệm vụ nhận giá trị trạng thái thay đổi trượt ăn vật phẩm trả trạng thái lớp đối tượng để xử lý thay đổi hiệu ứng cho đối tượng - Các giá trị trạng thái lớp hiệu ứng xữ lý hàm xảy va chạm trượt vật phẩm,tùy theo cấp độ vật phẩm xuất để trả giá trị tương ứng cho hiệu ứng vật phẩm vd : // va cham voi item level_1 >effect long_pad (thanh trượt dài ra) // va cham voi item level_2 >effect big_ball (banh to hơn) 28 Đồ ántrái tốt nghiệp, // va cham voi item level_3 >effect x3ball ( them banh)Game Breakout Hình 3.25 Phương thức tạo hiệu ứng theo vật phẩm 3.2.4.3 Lớp Điểm Số - Lớpnày có nhiệm vụ tạo lưu trữ điểm game cho người chơi - Điểm tạo từ việc phá viên gạch hoặc ăn vật phẩm, điểm tăng lên tùy biến theo giá trị cấp độ đối tượng publicvoid score_brick_colis_ball(Brick_Main brick) publicvoid score_pad_colis_item(Items item) - Hai phương thức tính điểm gọi xữ lý va chạm mảng gạch banh, va chạm trượt vật phẩm - Tạo phương thức kiểm tra số điểm vừa xuất hình chơi game để lưu điểm số cá theo thứ tự giảm dần Public void refesh_list_score() 29 Đồ án tốt nghiệp, Game Breakout Hình 3.26 Phương thứchiển thi điểm cao - Trong lớp có hàm vẽ lên điểm số lúc đầu cho lớp hình Xem Điểm hiển thị số điểm + bảng điểm lên hình chơi game lúc người chơi thua publicvoid draw_score_gameRunning(SpriteBatch batch_run) publicvoid draw_scoreBoard(SpriteBatch batch_run) 3.2.4.4 Lớp Nút Bấm Cơ Bản - Lớp chủ yếu tạo hành động nút bấm cho hình vẽ lên - Tạo phương thức vẽ nút bấm với tham số (hình, tọa độ(x,y), kích cỡ(w,h) ) - Tiếp theo tạo phương thức xác định khung bao để xác định trạng thái nút bấm vào hay không Hình 3.27 Phương thức tạo nút bấm 30 Đồ án tốt nghiệp, Game Breakout KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN - KẾT QUẢ ĐẠT ĐƯỢC - Qua trình tìm hiểu thực đồ án dựa framework LibGDX, đồ án làm số công việc sau: - Nghiên cứu cách thức phát triển chương trình game thiết bị di động chạy đa tảng Android,IOS,HTML bằng famework LibGDX - Nghiên cứu hệ thống xử lý Engine hỗ trợ việc tạo chương trình theo lớp hỗ trợ mạnh mẽ LibGDX - Xây dựng thành công chương trình game BreakOut thiết bị di động chạy hệ điều hành Android - HƯỚNG PHÁT TRIỂN - Do khả phát triển đa tảng LibGDX, chương trình xây dựng nên phân chia giới hạn cho lớp,hàm thành phần có thuộc tính chung sử dụng nhiều nơi chương trình Việc giúp ta biên dịch hoặc thao tác lại số vấn đề xử lý tảng khác dễ dàng - Kết hợp với công cụ TileMap hoặc TexturePacker tạo đồ họa cho chương trình thêm sinh động - Tìm hiểu thêm engine thuật toán hỗ trợ việc xử lý chương trình mượt mà giúp giảm thiểu dung lượng ứng dụng sau hoàn tất 31 Đồ án tốt nghiệp, Game Breakout TÀI LIỆU THAM KHẢO  Xây dựng cấu trúc lập trình với LibGDX Nguồn :http://www.kilobolt.com/  Các vấn đề cần giải cách xử lý đối tượng hình ảnh LibGDX Nguồn : http://congdongandroid.vn/forumdisplay.php?fid=12  Tạo lớp Screen game thành phần lien quan Nguồn:http://libgdx.toxsickproductions.com/libgdx/libgdx-basics-create-asimple-menu/  Tự Tạo bitmap Font tiếng việt Nguồn : http://congdongandroid.vn/showthread.php?tid=541  Sử dụng Timer cho hành động,sự kiện hoặc hiệu ứng Nguồn:http://gamedev.stackexchange.com/questions/35261/android-gameperformance-regarding-timers  Các Vấn đề va chạm Nguồn :http://stackoverflow.com/questions/13537322/android-libgdx-andcollision-detection  Mảng cách truy xuất mảng phần tử Nguồn:http://examples.javacodegeeks.com/core-java/util/arraylist/arraylistiterator-example/  Cách thức tạo thành phần liệu : animation,json,UIdesign… Nguồn: http://www.tutorialspoint.com/android/android_json_parser.htm 32 Đồ án tốt nghiệp, Game Breakout BẢNG PHÂN CHIA CÔNG VIỆC STT 10 11 12 13 14 Công việc Màn hình menu Màn hình bắt đầu Màn hình xem điểm Màn hình cấp độ game Màn hình hướng dẫn Màn hình cài đặt Xây dựng trượt Xây dựng trái banh Xây dựng mảng gạch Xử lý lớp va chạm Xử lý trạng thái xuất Vật Phẩm Xây dựng vật phẩm Xử lý hiệu ứng phát sinh Màn hình tạm dừng Lớp lưu vẽ điểm số Tạo lượt chơi xét trò chơi kết thúc Xây dựng cấp độ game Một số hướng phát triển Người phụ trách Vinh Triết Đạt Đạt Triết Vinh Vinh,Đạt,Triết Vinh Vinh,Đạt,Triết Vinh Đạt Triết Vinh Vinh [...]... 30 Đồ án tốt nghiệp, Game Breakout KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN - KẾT QUẢ ĐẠT ĐƯỢC - Qua quá trình tìm hiểu và thực hiện đồ án dựa trên framework LibGDX, đồ án làm được một số công việc sau: - Nghiên cứu về cách thức phát triển chương trình game trên thiết bị di động chạy đa nền tảng như Android,IOS,HTML bằng famework LibGDX - Nghiên cứu hệ thống xử lý và các Engine hỗ trợ việc tạo chương trình. ..11 Đồ án của tốt nghiệp, Game Breakout - Các giao diện màn hình liên kết với nhau và tùy theo lựa chọn người chơi sẽ hiển thị ra hoặc tắt đi.Có thể xem như life_cycle của game Hình 2.2 Sơ đồ liên kết giữa các màn hình CHƯƠNG 3 : XÂY DỰNG CHƯƠNG TRÌNH 3.1 CÀI ĐẶT MÔI TRƯỜNG 3.1.1 Giới Thiệu LibGDX - LibGDX là một FrameWork được phát triển trên nền OpenGL và được sử dụng để phát triển các ứng dụng game. .. hơn - Kết hợp với các công cụ như TileMap hoặc TexturePacker khi tạo đồ họa cho chương trình thêm sinh động - Tìm hiểu thêm các engine và các thuật toán hỗ trợ việc xử lý chương trình mượt mà và giúp giảm thiểu dung lượng của ứng dụng sau khi hoàn tất 31 Đồ án tốt nghiệp, Game Breakout TÀI LIỆU THAM KHẢO  Xây dựng cấu trúc lập trình với LibGDX Nguồn :http://www.kilobolt.com/  Các vấn đề cần giải... trái banh speedY_banh: tham số tốc độ di chuyển theo trục tung của trái banh w_banh: Chiều rộng banh ; h_banh : Chiều cao banh ; w _gạch : Chiều rộng gạch ; h _gạch : Chiều cao gạch ; Hướng vào : Hướng ra : Phạm vi banh di chuyển 24 Banh di chuyển với x+, y+ Đồ án tốt nghiệp, Game Breakout TH 1:Nếu rx_banh >= x_gach và ry_banh < y_gach speedY_banh = - (speedY_banh) TH 2:Nếu rx_banh = y_gach+h _gạch speedY_banh = (speddY_banh) ; speedX_banh = -(speedX_banh) ; 25 Đồ án tốt nghiệp, Game Breakout TH 3: Nếu rx_banh < x_gach và ry_banh < y_gach +h _gạch speedX_banh = - (speddX_banh) speedY_banh = - (speddY_banh) ; Banh di chuyển với x-,yTH 1: Nếu rx_banh y_gach+h_gach speedY_banh = (speddY_banh) TH 2: Nếu rx_banh > x_gach và ry_banh >= y_gach+h _gạch speedY_banh... (speddY_banh) ; - Đối với viên gạch xảy ra va chạm, ta xử lý xóa viên gạch tại vị trí va chạm và cập nhật lại mảng gạch trên màn hình bằng hàm sau Hình 3.24 Hàm xóa phần tử trong mảng và cập nhật lại - Gọi hàm trên trong hàm kiểm tra va chạm publicvoid ball_collis_brick (Brick_Main pos) 27 án tốtmà nghiệp, Game Breakout - Hàm kiểm tra va chạm trên được gọi trong hàm tạo mảngĐ gạch ta đã khai báo ở trên... về cách thức mà chương trình thực hiện Cụ thể ở đây sẽ giới thiệu cho ta biết về các thành phần trong game, cách chơi game và các luật lệ trong game Hình 3.13 Màn hình hướng dẫn 3.2.2.5 Màn hình menu tạm dừng 18 án người tốt nghiệp, Game Breakout - Màn hình menu Tạm Dừng xuất hiện khi đang chơi game ồmà chơi bấm vào nút tạm dừng trên góc màn hình - Màn hình menu Tạm Dừng chứa các thành phần tương tự... hàm khởi tạo mảng gạch với các tham số (số lượng phần tử n, tọa độ x,y bắt đầu, tọa độ x,y tiếp theo) //Khoitao map Bricks(n,Xfirst,Xnext,Yfirst,Ynext) w =540 wbrick = 60 init_brick_list(30, 11, 76, h/2,60); Hình 3.18 Hàm khởi tạo giá trị cho mảng gạch 21 Đồ ántatốtdùng nghiệp, Game Breakout - Tạo hàm vẽ mảng gạch đã khởi tạo giá trị trước đó Ở đây, array_list quản lý tất cả đối tượng gạch được tạo ra... ra) // va cham voi item level_2 >effect big_ball (banh to hơn) 28 Đồ 3 ántrái tốt nghiệp, // va cham voi item level_3 >effect x3ball ( them banh )Game Breakout Hình 3.25 Phương thức tạo hiệu ứng theo vật phẩm 3.2.4.3 Lớp Điểm Số - Lớpnày có nhiệm vụ tạo lưu trữ điểm trong game cho người chơi - Điểm được tạo ra từ việc phá các viên gạch hoặc ăn được vật phẩm, điểm tăng lên tùy biến theo các giá trị... x_gach+w _gạch và ry_banh < y_gach+h_gach speedX_banh = (speddX_banh) speedY_banh = - (speddY_banh) ; 26 Banh di chuyển với x-,y+ Đồ án tốt nghiệp, Game Breakout TH 1: Nếu rx_banh x_gach+w_gach và ry_banh x_gach+w _gạch và

Ngày đăng: 07/05/2016, 23:54

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1 : TỔNG QUAN

    • 1.1 LỊCH SỬ PHÁT TRIỂN

Tài liệu cùng người dùng

Tài liệu liên quan