Xây dựng game Rắn săn mồi Nhóm 6 ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN ******************* BÁO CÁO BÀI TẬP LỚN MÔN GIAO DIỆN NGƯỜI MÁY XÂY DỰNG GAME RẮN SĂN MỒI Nhóm sinh viên thực hiện[.]
ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN ******************* BÁO CÁO BÀI TẬP LỚN MÔN GIAO DIỆN NGƯỜI MÁY XÂY DỰNG GAME RẮN SĂN MỒI Nhóm sinh viên thực – lớp CNPM.K52: Đào Thị Thủy (MSV: 1112057) Lương Đức Anh (MSV: 1100283) Trần Văn Khang (MSV: 1106197 ) Giáo viên hướng dẫn: TS Nguyễn Trọng Phúc – Bộ môn CNPM Hà Nội, tháng 11 - 2014 h MỤC LỤC LỜI NÓI ĐẦU RẮN SĂN MỒI 2D I Phân tích .4 Giới thiệu Khảo sát Luật trò chơi .5 Phân tích chức game II Thiết kế .8 Giao diện Data base 12 III Giao diện moldul chương trình 14 Các moldul .14 Giao diện 14 PHÂN CÔNG VIỆC 17 KẾT LUẬN .18 h LỜI NÓI ĐẦU Sự bùng nổ cơng nghệ thơng tin tồn cầu nay, có bước phát triển mạnh mẽ cơng nghệ số Những điện thoại smart- phone thông minh với nhiều hệ điều hành khác ngày nhiều người sử dụng tin dùng Nắm bắt xu người lập trình game đưa ý tưởng tạo ứng dụng game hay hấp dẫn người chơi có trị chơi vào huyền thoại, ai biết đến Đó thành cơng lập trình viên Ở Việt Nam lập trình viên lập trình game hệ điều hành chưa phát triển mạnh Qua nghiên cứu tìm hiểu em nhận thấy game Rắn săn mồi game cổ điển, xuất vào năm 1997 Nokia 6610 là ô vuông xếp liên tiếp di chuyển hình màu xanh đơn giản, Rắn săn mồi đã xây dựng thành cơng tên tuổi Với bốn trăm triệu xuất xưởng đến phiên thứ tám Game có có hấp dẫn người chơi Do nhóm chúng em định xây dựng chương trình game rắn săn mồi dựa ý tưởng họ Trong q trình phân tích thiết kế thời gian trình độ có hạn nên chương trình khơng tránh khỏi thiếu sót Vì chúng em mong góp ý thầy cô bạn Em xin chân thành cảm ơn! Hà Nội, tháng 11 năm 2014 Nhóm sinh viên thực h Xây dựng game Rắn săn mồi Nhóm RẮN SĂN MỒI 2D I Phân tích Giới thiệu Rắn săn mồi game cổ điển, xuất vào năm 1997 Nokia 6610 là ô vuông xếp liên tiếp di chuyển hình màu xanh đơn giản, Rắn săn mồi đã xây dựng thành cơng tên tuổi Với bốn trăm triệu xuất xưởng đến phiên thứ tám Game có có hấp dẫn người chơi Khảo sát Bố cục chơi game gồm panel panel phụ Một Panel chính: - Kích thước: width = 720, height = 720 (px) - Được bố trí ma trận gồm 30 *30 có kích thước (24* 24) Hai Panel phụ: - Panel phụ 1: có kích thước 720 * 100 làm khung hiển thị thơng tin score level có nút cho người chơi lựa chọn resume, restart, back - Panel phụ 2: có kích thước 720 * 250 làm khung chọn nút điều khiển rắn di chuyển Cấu tạo rắn: - Con rắn khởi tạo có độ dài = 72px - Xuất phát điểm đầu rắn vị trí có tọa độ (x,y) = (0,3) - Rắn có phần: Đầu rắn (load ảnh), thân rắn màu xanh (load ảnh), khúc rắn hình vng bo trịn góc kích thước 24 * 24 Vật cản: - Phụ thuộc vào level có vật cản khác (kích thước, vị trí) màu sắc = GREEN Mỗi block vật cản hình vng 24 * 24 - Vật cản xây dựng đọc từ ma trận kích thước 23 * 23 chứa số với quy tắc: 0: Khơng có block vật cản 1: Có block vật cản - Vật cản đường biên bao quanh bàn cờ Thức ăn: - Thức ăn hiển thị ngẫu nhiên panel khơng nằm vật cản h Xây dựng game Rắn săn mồi Nhóm - Kích thước thức ăn bình thường: 24 * 24, cịn tạo combo có kích thước 48 * 48 sau giảm dần kích thước theo khoảng thời gian 20 * 20 -> 10 * 10 -> biến - Màu sắc: hình ảnh hoa load ảnh từ nguồn Luật trò chơi Luật chơi - Tạo ma trận tĩnh có vật cản cố định thức ăn sinh ngẫu nhiên - Hành động rắn: Khi người chơi chọn nút PLAY rắn bắt đầu di chuyển, người chơi di chuyển rắn nút ảo sang phải →, sang trái ←, lên ↑, xuống ↓ cho rắn ăn thức ăn không bị đâm vào vật cản Trên đường thẳng rắn quay đầu lại - Có nhiều Level khác nhau, qua level tăng độ khó tốc độ rắn o Tốc độ rắn ban đầu (level 1) 300 ms => tăng dần tốc độ qua level: 180, 150 o Độ dài rắn: sau ăn thức ăn độ dài += 24 o Điểm: cộng điểm lần rắn ăn thức ăn - Mỗi rắn ăn thức ăn cộng điểm ngược lại bị đâm vào vật cản tự va vào thân => game over => lưu điểm người chơi - Khi ăn hết thức ăn level chuyển lên level tiếp theo. o Tốc độ theo level o Độ dài rắn: bắt đầu level độ dài rắn trở trạng thái ban đầu Các luật khác - Khởi tạo: o Tại thời điểm ban đầu rắn sinh có tọa độ (0, 3) o Vật cản sinh dựa vào ma trận level o Thức ăn sinh ngẫu nhiên: sinh thức ăn một, rắn ăn hết thức ăn sinh ngẫu nhiên thức ăn cho vị trí thức ăn khơng trùng với vị trí vật cản - Di chuyển: o Khi rắn ăn thức ăn: vị trí đầu rắn trùng với vị trí thức ăn o Khi rắn va vào vật cản: vị trí đầu rắn trùng với vị trí vật cản o Rắn di chuyển sang phải: tìm vị trí rắn; tìm vị trí đi( vị trí cuối rắn) xóa phần đuôi => vẽ lại rắn Đối với phần từ đến sát đầu => gán vị trí thứ i = i -1 Đối với phần đầu => tọa độ y += h Xây dựng game Rắn săn mồi Nhóm o Tương tự, di chuyển sang trái: Đối với phần đầu => tọa độ y -= o Tương tự, di chuyển sang xuống dưới: Đối với phần đầu => tọa độ x +=1 o Tương tự, di chuyển lên trên: Đối với phần đầu => tọa độ x -= - Level: Gồm có level Khi bắt đầu chơi mặc đinh chơi mức level Sau ăn đủ số thức ăn qui định level người chơi qua level Phân tích chức game Sơ đồ phân rã chức Hình 1: Sơ đồ phân rã chức game rắn săn mồi Mô tả chức Chức "Play game": Chức chương trình Chương trình mở giao diện chơi game : o Phần ma trận mô tả cho tọa độ đầu rắn, thân rắn, khoảng trống rắn đi, vật cản thức ăn Trong chơi game bấm vào nút o Phần phía hiển thị số điểm có, level chơi nút điều khiển góc bên trái, ấn vào nút phần chơi game bị mờ đi, rắn tạm ngừng hoạt động, mở bảng điều khiển bao gồm Resume, Restart Back h Xây dựng game Rắn săn mồi Nhóm Chọn Restart game level 1, số điểm trở tính lại từ đầu, chọn vào hệ thống hỏi có chắn muốn chơi lại hay không Chọn Resume game trở lại giao diện chơi, rắn tiếp tục hoạt động Chọn Back ứng dụng trở lại giao diện lúc vào không lưu thời điểm chơi tại, khơng tính kết thúc game khơng lưu điểm đạt kỉ lục o Phần phía hiển thị phím ảo lên, xuống, trái, phải để điều khiển rắn Chức "High Score": Chức xem điểm kỉ lục - Chương trình mở giao diện để xem điểm kỉ lục bao gồm thông tin 10 người chơi có điểm cao tên người chơi, số điểm kết thúc, level - Thông tin xếp theo thứ tự điểm từ cao đến thấp - Dữ liệu điểm kỉ lục lưu sở liệu hệ thống, chức gọi đến load thông tin từ sở liệu hiển thị lên giao diện - Mỗi kết thúc lượt game, hệ thống kiểm tra điểm người chơi, điểm kết thúc cao người top 10, hệ thống xóa thơng tin người đứng cuối top 10 bắt đầu cho nhập thông tin người chơi để lưu điểm Chúc "Help": Chức trợ giúp cách di chuyển rắn Chức "Setting": Cài đặt game o Chức "Sound Setting": Cài đặt âm bấm nút, ăn mồi, kết thúc game o Chức "Music Setting": Cài đặt nhạc hệ thống game Chức "Exit": Chức thoát ứng dụng game Hệ thống hỏi có muốn hay khơng? II Thiết kế Giao diện Giao diện h Xây dựng game Rắn săn mồi Nhóm Trên Giao diện chương trình Giao diện có nút (button) là: Play game, High score, Help, Exit Chức nút là: Button Play game: nút xác nhận bắt đầu trò chơi Sau click vào nút này, chương trình chuyển sang Giao diện chọn chế độ chơi game Button High score: nút xem xếp hạng tóp 10 (điểm cao) game Button Help: nút trợ giúp – hướng dẫn cách chơi game Button Exit: nút thoát khỏi ứng dụng game Button Setting: Có biểu tượng điều chỉnh âm (button): Khi ấn vào hiển thị sau h Xây dựng game Rắn săn mồi Nhóm Button Music (Biểu tượng music): Sau click vào nút để thay chuyển sang đổi trạng thái nhạc game Button Sounds (Biểu tượng sounds): Sau click vào nút để thay chuyển sang đổi trạng thái âm nút điểu khiển game h Xây dựng game Rắn săn mồi Nhóm Play game Đây Giao diện chơi game ứng dụng Giao diện có nút ảo (button) để di chuyển rắn button để lựa chọn chơi tiếp, chơi lại quay lại frames; label Score, Level Chức nút, frames label là: Frame Frame 1: dung để chứa Lable điểm level nút button lựa chọn Frame Frame 2: khung nhìn game – nơi mà người chơi sử dụng để di chuyển rắn ăn mồi Frame Frame 3: dùng để chứa button điểu khiển rắn Button Mũi tên: dùng để di chuyển rắn lên trên, xuống dưới, sang trái, sang phải Button lựa chọn: gồm có Resume, Restart Back Khi ấn vào hiển thị sau: 10 h Xây dựng game Rắn săn mồi Nhóm High score Đây Giao diện xem xếp hạng ứng dụng 11 h Xây dựng game Rắn săn mồi Nhóm Help Đây Giao diện Help ứng dụng Data base Lưu điểm Mỗi ứng dụng sử dụng liệu, liệu đơn giản hay đơi cấu trúc Trong Android hệ sở liệu sử dụng SQLite Database, hệ thống mã nguồn mở sử dụng rộng rãi ứng dụng Trong Android, sở liệu mà bạn tạo cho ứng dụng ứng dụng có quyền truy cập sử dụng, cịn ứng dụng khác khơng phép Với việc lưu điểm chơi top 10 đơn giản ghi nên ứng dụng game sử dụng hệ sở liệu SQLite 12 h Xây dựng game Rắn săn mồi Nhóm Cơ sở liệu gồm bảng với thuộc tính sau: Tên cột id Tên Điểm Xếp hạng Level Kiểu liệu int Text double int int Mơ tả Khóa - Truờng id: trường khóa , sinh tự động người chơi muốn lưu điểm Khi lấy liệu ra, ta sử dụng câu lệnh truy vấn ORDER BY để lấy liệu theo thứ tự giảm dần XẾP HẠNG - Trong sở liệu lưu 10 người chơi có điểm cao có người chơi có số điểm cao người chơi có xếp hạng 10 - Giả sử : xếp hạng điểm người chơi theo thứ tự từ thấp đến cao - Xếp hạng (i) : 10 - Điểm d(i):D1 d2 d3 d4 d5 d6 d7 d8 d9 d10 - Người chơi ( có điểm m )sẽ thêm vào vị trí có xếp hạng (n) cho có điểm (m) d(i) < m < d(i+1), vị trí có xếp hạng thấp bị lùi xếp hạng (i) đơn vị, xóa người chơi có xếp hạng thấp - Nếu m < d(1) “người chơi có số điểm thấp nhất” : không lưu người chơi - Nếu m = d(1) : lưu thêm người chơi có số xếp hạng n = , Danh sách tăng thêm người chơi - Nếu m = d(i) : lưu người chơi có xếp hạng n = i, người chơi có xếp hạng nhỏ (< i) bị giảm xếp hạng , đến người chơi có xếp hạng thấp bị xóa Nếu người chơi có số điểm thấp có nhiều người ( hoăc người ) xóa người Bản đồ rắn di chuyển - Tạo ma trân tĩnh cho level dạng txt - Các vật cản liệu cố định biểu diễn số file matran.txt - Thức ăn sinh ngẫu nhiên cho tọa độ thức ăn không trùng với tọa độ vật cản 13 h Xây dựng game Rắn săn mồi III Nhóm Giao diện moldul chương trình Các moldul Giao diện o Giao diện chính: 14 h Xây dựng game Rắn săn mồi Nhóm o Giao diện chơi: 15 h Xây dựng game Rắn săn mồi Nhóm o Giao diện help: o Giao diện high score: 16 h Xây dựng game Rắn săn mồi Nhóm PHÂN CƠNG VIỆC 17 h Xây dựng game Rắn săn mồi STT Nhóm Cơng việc Người làm Giới thiệu, khảo sát bố cục , định nghĩa đối Đào Thị Thủy tượng có ứng dụng Phân tích luật chơi Phân tích chức cho ứng dụng: sơ đồ phân rã Lương Đức Anh chức, mô tả chi tiết chức Thiết kế giao diện Đào Thị Thủy Thiết kế database: thiết kế CSDL để lưu điểm, tạo Trần Văn Khang ma trận chơi Tìm kiếm icon ảnh phục vụ cho ứng dụng Lương Đức Anh game Tìm hiểu hệ quản trị CSDL SQLite Trần Văn Khang Code class đối tượng: PointObject, Snake, Đào Thị Thủy Barrier, Food, Map Thiết kế giao diện chơi ứng dụng, code Lương Đức Anh playActivity Thiết kế giao diên highScore, code lưu điểm Trần Văn Khang high score KẾT LUẬN 18 h Xây dựng game Rắn săn mồi Nhóm Qua việc nghiên cứu xây dựng chương trình game em thấy thực vấn đề sau: - Thiết kế giao diên moldul Xây dựng rắn di chuyển ma trận Rắn ăn mồi tăng điểm thân răn dài Cài đặt âm cho chương trình Chưa thực vấn đề sau: - Tạo level cho chương trình Load ma trận từ tệp Chưa xư lý rắn đâm vào vật cản Tạo combo Định hướng phát triển: - Tiếp tực hoàn thiện chương trình, chỉnh sửa giao diện đẹp Nghiên cứu phát triển tính khác hỗ trợ cho chương trình Một lần em xin cảm ơn thầy tận tình giảng dạy, giúp đỡ chúng em thời gian nghiên cứu thực 19 h