Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
5,19 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Đề Tài: Xây Dựng Game 2D Giảng viên Hướng Dẫn: TS. Vũ Thị Hương Giang ThS. Trịnh Thành Trung Nhóm sinh viên thực hiện: Nguyễn Văn Thịnh MSSV: 20122512 Nguyễn Duy Nhất MSSV: 20120690 Bùi Mạnh Thắng MSSV: 20120884 La Quốc Anh MSSV: 20121195 Đỗ Đình Nam MSSV: 20122099 Hà Nội 05/2015 1 NHÓM 35 LỚP KSCLC K57 MỤC LỤC Hà Nội tháng 05 năm 2015 Nhóm 35 lớp KSCLC K57 Danh sách thành viên: Nguyễn Văn Thịnh Nguyễn Duy Nhất Đỗ Đình Nam La Quốc Anh Bùi Mạnh Thắng PHÂN CÔNG THÀNH VIÊN TRONG NHÓM Thời gian thực hiện Nguyễn Văn Thịnh Nguyễn Duy Nhất La Quốc Anh Đỗ Đình Nam Bùi Mạnh Thắng Tuần 1 -Tích lũy đầy đủ kiến thức java cơ bản -Thiết kế hệ thống các lớp quái vật và quản lý quái vật -Tích lũy đầy đủ kiến thức java cơ bản -Thiết kế cấu trúc chương trình -Tích lũy đầy đủ kiến thức java cơ bản -Tìm hiểu và xây dựng thuật -Tích lũy đầy đủ kiến thức java cơ bản -Thiết kế cấu trúc background cho mỗi map và tìm hiểu cách xây dựng -Tích lũy đầy đủ kiến thức java cơ bản -Tìm hiểu phân tích thiết kế hệ thống âm 2 NHÓM 35 LỚP KSCLC K57 chính bao gồm vòng lặp và lớp quản lý chính tất cả các map toán xử lý các loại va chạm giao diện khi khởi chạy thanh trong game Tuần 2 Tìm hiểu tích lúy đầy đủ kiến thức về java graphics,swing , Xây dựng kết cuầ tòa chương trình. Tìm hiểu tích lũy đầy đủ về java graphics , swin timer và đa luồng Tìm hiểu tích lỹ đày đủ kiến thức về graphics và áp dụng các thuật toán va chạm, chuyển động của nhân vật Tìm hiểu tích lũy đầy đủ kiến thức về grpahicsjava swing jpanel, jframe,button … Tìm hiểu và tích lũy đầy đủ kiến thức Về java clip, sound, Graphics… Tuần 3 Thực hiện viết mã nguồn các lớp quản lý va chạm và chuyển động của quái,các lớp quản lý các quái và các lớp quái. Viết mã nguồn các lớp người chơi và lớp quản lý game chính chứa vòng lặp vô hạn của game, xây dựng phương thức update Xây dựng thêm các thuộc tính phương thức trong các lớp người chơi và quái vật để kết nối xử lý va chạm giữa Viết mã nguồn giao diện bằng netbean. Viết lớp background để quản lý background mỗi map Viết mã nguồn các âm thanh cho từng sự kiên. Tái cấu trúc lại mã nguồn toàn chương trình 3 NHÓM 35 LỚP KSCLC K57 chúng trong game Tuần 4 Xây dựng cụ thể các lớp quái, load sprite sheet mỗi quái, xây dựng các phương thức skill khác nhau cho mỗi quái. Xây dựng phương thức đuổi theo người chơi. Xây dựng hoàn chính lớp board quản lý toàn bộ game, xây dựng lớp cha cơ bản character để các lớp con khác kế thừa Lắp gép các sự kiện va chạm giữa người và quái thông qua các phương thức update Lắp gép giao diện với các thành phần còn lại của game, Lắp ghép chuển động của back ground theo nhân vật tương ứng mỗi map Xây dựng Các lớp bổ trợ trong game như helicopter và xử lý va chạm nhân vật với các thành phần phụ trong game như hộp máu, hộp dame Tuần 5 Xây dựng các lớp đạn và quản lý đạn Tổng quát hóa chuyển động của các thành phần thông qua lớp animation Xây dựng bổ sung các phương thức chuyển động của nhan vật và các skill Hoàn thiệ giao diện và các lớp load sprite sheet. Tham gia thảo luận và xây dựng kết nối các thành phần chương trình Hoàn thiện nốt các xử lý về âm thanh, các thành phần game và hoàn thiện một phần lớp nhân vật Tuần 6 Thảo luận và hoàn thiện lớp người chơi và các lớp đạn Thảo luận và xây dựng kết cấu lại toàn bộ hệ thống chương trình. Sửa mã nguồn phù hợp với kết cấu mới Sửa mã nguồn phù hợp với kết cấu mới Sửa mã nguồn phù hợp với kết cấu mới Tuần 7 Tinh chỉnh, đánh giá và Tính chính, Tính chính, Tính chính, đánh giá và Tính chính, đánh giá 4 NHÓM 35 LỚP KSCLC K57 test, và làm báo cáo, viết tài liệu. đánh giá và test, và làm báo cáo, viết tài liệu. đánh giá và test, và làm báo cáo, viết tài liệu. test, và làm báo cáo, viết tài liệu. và test, và làm báo cáo, viết tài liệu. Đánh giá chung tích cực tham gia thảo luận, đóng góp ý kiến, xây dựng hệ thống. Hoàn thành công việc đúng thời gian quy định. Ý thức tốt tích cực tham gia thảo luận, đóng góp ý kiến, xây dựng hệ thống. Hoàn thành công việc đúng thời gian quy định. Ý thức tốt tích cực tham gia thảo luận, đóng góp ý kiến, xây dựng hệ thống. Hoàn thành công việc đúng thời gian quy định. Ý thức tốt tích cực tham gia thảo luận, đóng góp ý kiến, xây dựng hệ thống. Hoàn thành công việc đúng thời gian quy định. Ý thức tốt tích cực tham gia thảo luận, đóng góp ý kiến, xây dựng hệ thống. Hoàn thành công việc đúng thời gian quy định. Ý thức tốt CHƯƠNG 1: MÔ TẢ YÊU CẦU 1.1 Mô tả yêu cầu bài toán: - Xây dựng game đối kháng giữa người chơi và quái. - Người chơi có thể: lựa chọn start,help,quit, tấn công quái vật theo 2 skill là Q và W, di chuyển, nhảy… - Người chơi có thể lựa chọn các map khi ở giao diện map chinh!. 1.2 Biểu đồ USE CASE Tác nhân: người chơi USE case: - Start game - Select map - Quit game 5 NHÓM 35 LỚP KSCLC K57 - Help - Select skill - Move - Attack - Exit Use Case Diagram Hình 1: biểu đồ use case 6 NHÓM 35 LỚP KSCLC K57 SELECT MAP START SELECT SKILL HELP QUIT EXIT MOVE ATTACK 1.3 Đặc tả use case 1.3.1 Start game: a) Mô tả: Người dung sử dụng use này để bắt đầu chơi game b) Dòng sự kiện Người dung bắt đầu chơi game click START Hệ thống hiển thị map để người chơi lựa chọn vào các màn 1.3.2 Quit game a) Mô tả: Người dung sử dụng use case này để thoát khỏi game b) Dòng sự kiện: Người dung thoát khỏi game bằng cách nhất QUIT Hệ thống sẽ dừng hoạt động 1.3.3 Help a) Mô tả Người dung sử dụng use case này để xem phần trợ giúp và hướng dẫn chơi game b) Dòng sự kiện: Người dung click HELP Hệ thống sẽ mở ra một dialog chứa đoạn text hướng dẫn chơi game và giới thiệu về game Người dung click X để thoát dialog và trở lại 1.3.4 Select Map a) Mô tả: Người dùng sử dụng use case này để lựa chọn màn chơi game b) Dòng sự kiện: Người chơi click vào các map là các hình elip tương ứng với mỗi hòn đảo để lựa chọn map Sau khi người chơi click vào map hệ thống sẽ mở ra giao diện chơi game để người chơi bắt đầu chơi. Người chơi click vào nút back Hệ thống sẽ quay trở lại menu start 1.3.5 SELECT SKILL 7 NHÓM 35 LỚP KSCLC K57 Hình 2: biểu đồ use case phân giã 1 1.3.6 MOVE 8 NHÓM 35 LỚP KSCLC K57 NHẤN các phím skill Nhấn W Nhấn Q Nhân vật trong game sẽ tung ra skill Chém bổ dọc có sát thương cao Nhân vật trong game sẽ tung ra skill Chém ngang có sát thương bình thườn Hình 3: biểu đồ use case phân giã 2 1.3.7 ATTACK a) Mô tả: Người chơi sử dụng use case này để tấn công quái vật b) Dòng sự kiện Khi người chơi sử dụng các phím MOVE để tiến lại gần quái vật và nhấn các phím skill Q,W tấn côn quái vật Khi người chơi tấn công trúng vào quái vật hệ thống sẽ trừ điểm HP của quái vật khi HP quái vật =0 người chơi sẽ dành chiến thắng 1.3.8 EXIT a) Mô tả: Người chơi dùng use case này để thoát khỏi màn hình chơi game b) Dòng sư kiện Khi người chơi nhấn phím F Hệ thống sẽ xác nhận là người chơi thua và quay trở lại màn hình select map 9 NHÓM 35 LỚP KSCLC K57 Nhân vật nhảy lên Nhân vật di chuyển sang trái Nhân vật di chuyển sang phải Người chơi nhấn các phím di chuyển hình mũi tên CHƯƠNG 2: THIẾT KẾ CHI TIẾT 2.1 Thiết Kế Lớp 2.1.1 Biểu Đồ Lớp Các lớp bao gồm: Class OnepieceFrame Class board Class LUFFY Class Enermy Class background Class demon Class animation Class character Hình 5: biểu đổ lớp 2 Hình 5: biểu đổ lớp 2 H 10 NHÓM 35 LỚP KSCLC K57 [...]... Thông báo lỗi hiện lên là màu đen • File ảnh đính kèm: StyleDo.jpg • Thông báo: "Có lỗi nghiêm trọng xảy ra Input string was no in a correct format" • File ảnh đính kèm: ThoiGianThi.jpg • Tiến hành chọn bài thi và thi • Nhấn nút Kết thúc • Nhấn nút Print Không thực hiện gì 25 NHÓM 35 LỚP KSCLC K57 CHƯƠNG 5:KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN - Kết quả đạt được: Hoàn thành chương trình, báo cáo bài tập lớn đúng... Hình 6: giao diện khi bắt đầu vào game 17 NHÓM 35 LỚP KSCLC K57 Hình 7: Dialog Help 18 NHÓM 35 LỚP KSCLC K57 Hình 8: giao diện lựa chọn map 19 NHÓM 35 LỚP KSCLC K57 Hình 9: Giao diện khi Chơi game 1 20 NHÓM 35 LỚP KSCLC K57 Hình 10: Giao diện khi chơi game 2 21 NHÓM 35 LỚP KSCLC K57 Hình 11: Giao diện khi chơi game 3 22 NHÓM 35 LỚP KSCLC K57 Hình 12: Giao diện khi chơi game 4 23 NHÓM 35 LỚP KSCLC K57... các sự kiện chuột để trở lại và vào map chơi game Các phương thức sử lý sự kiện click chuột Started(int level) Được thực hiện khi có sự kiện click chuột trên mỗi label ở jpanel 2 Main() Là phương thức chính dùng để chạy khi JVM bắt đầu Run() Để thực hiện luồng CHƯƠNG 3: CHƯƠNG TRÌNH MINH HỌA Xây dựng chương trình - Giới thiệu về công nghệ đã sử dụng để xây dựng chương trình minh họa o o Tính năng, ưu... geter,seter tương tứng với các thuộc tính Xây dựng lớp Enemy Thuộc tính: - Sound(soundEnemy) Delay,delaySkill(int) Stand,jump,jumpBefore,skill,skill1,beaten,rightBefore,skillulti,skillultiBullet(Boolean) Count,dame,countJump,coutSkillUlti(int) I(int) Phương thức - - Enemy(int level) phương thức khởi tạo quái vật theo từng level update(LUFFY luffy) trong phương thức xây dựng các thuật toán chuyển động của... Tên lỗi Các thông báo lỗi không là màu đỏ Use case - Thêm/sửa môn thi - Thêm/sửa bài thi Trạng thái Còn lỗi Người tạo LongNV Loại lỗi 2- Giao diện người dùng Các bước tái tạo lỗi / Dữ liệu kiểm thử • Nhập dữ liệu sai ít nhất 1 trường • Nhấn nút Thêm mới/Cập nhật • Gõ thời gian thi gồm C01-02 Không xử lý validate cho trường Thời gian thi C02-01 Chức năng Print không hoạt động Cập nhật bài thi Thi thật... HP,ManaHP,MAXMana,speed,x,y,dx,dy,visible,right,currentFrame,gtr; Các getert,setert tương tứng và các Abstract method TopRect(),BotRect(),BoundsRect(),EspaceRect(); 12 NHÓM 35 LỚP KSCLC K57 Xây dựng lớp Board: extends JPanel,implement Runnable Thuộc tính: - sound(soundMap) ingame,win,lose(Boolean) luffy(LUFFY) min1(Enemy) bg(Background) bullet(bulletSkill) level,delay,x0,h,w(int) opFrame(OnepieceFrame) Phương thức - - Board(int level)... repaint() đẻ vẽ lại jpanel mỗi khi lặp lại Iner class TAdapter extends KeyAdapter là mội class trong dùng để nghe các sự kiện Ngoài ra còn có các phương thức getert và setert của các thuộc tính tương ứng Xây dựng lớp LUFFY extends Character Thuộc tính - Sound(soundPlayer) Exp(int) MaxExp,dameQ,dameW(int) countJump,countBeaten(int) flag,beaten,rightBefore(Boolean) stand,jump,walk,skillQ,skillW(Boolean) IsShot(Boolean)... 12: Giao diện khi chơi game 4 23 NHÓM 35 LỚP KSCLC K57 CHƯƠNG 4: KIỂM CHỨNG CHÉO Đối tượng kiểm chứng (Verification) Kiểm chứng cho nhóm nào gồm các thành viên nào, đề tài gì Kiểm chứng cách trình bày báo cáo Theo các tiêu chí đánh giá - Chú ý tránh các lỗi trình bày/lỗi chính tả Không được phép vi phạm các lỗi trình bày cơ bản, VD: các dấu câu phải đi liền với chữ phía trước và cách chữ phía sau 1 dấu... được một quảng thời gian nhất định quái sẽ nhảy lùi lại tung ra skillulti tấn công nhân vật reong phương thức sử dụng các biến trạng thái boolean để xác định hành động của quái diễn ra ngoài ra còn xây dựng các phương thức geter và seter tương ứng với các thuộc tính 2.2 Thiết Kế Giao Diện Tương Tác Ban Đầu Giao diện được thiết kế trong lớp OnepieceFrame Thuốc tính JButton close; JDialog help; JButton... Phương thức - - LUFFY(),LUFFY(int level) hai hàm khởi tạo upDate(Enemy min, bulletSkill bullet,Background bg) phương thức dùng để cật nhật dữ liệu cho lớp LUFFY mỗi khi lặp lại trong phương thức có xây dựng các thuật toán chuyển động stand,jump,walk ,các thuật toán tấn công skill,skill1,skillulti và các thuật toán sử lý va chạm với quái vật hay các thành phần khác trong map keyPressed(KeyEvent e) bắt . trong game Tuần 4 Xây dựng cụ thể các lớp quái, load sprite sheet mỗi quái, xây dựng các phương thức skill khác nhau cho mỗi quái. Xây dựng phương thức đuổi theo người chơi. Xây dựng. quái. Viết mã nguồn các lớp người chơi và lớp quản lý game chính chứa vòng lặp vô hạn của game, xây dựng phương thức update Xây dựng thêm các thuộc tính phương thức trong các. phần phụ trong game như hộp máu, hộp dame Tuần 5 Xây dựng các lớp đạn và quản lý đạn Tổng quát hóa chuyển động của các thành phần thông qua lớp animation Xây dựng bổ sung các