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

Báo cáo bài tập lớn Xây dựng game 2d

31 1,7K 8

Đ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 31
Dung lượng 5,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 cả các map -Tích lũy đầy đủ kiến t

Trang 1

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

Trang 2

MỤC LỤC

MỤC LỤC 2

LỜI NÓI ĐẦU 3

PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 4

CHƯƠNG 1 MÔ TẢ YÊU CẦU 7

1.1 Mô tả yêu cầu bài toán 7

1.2 Biểu đồ use case 7

1.3 Đặc tả use case 8

CHƯƠNG 2 THIẾT KẾ CHI TIẾT 11

2.1 Thiết kế lớp 11

2.1.1 Biểu đồ lớp 11

2.1.2 Thiết kế chi tiết lớp 13

2.2 Thiết kế giao diện bắt đầu 15

CHƯƠNG 3 CHƯƠNG TRÌNH MINH HOẠ 17

3.1 Xây dựng chương trình 17

3.2 Kết quả chương trình 17

CHƯƠNG 4 KIỂM CHỨNG CHÉO 24

4.1 Đối tượng kiểm chứng (Verification) 24

4.2 Kiểm chứng cách trình bày báo cáo 24

4.3 Kiểm chứng thiết kế và kỹ năng lập trình 24

4.4 Kiểm thử tích hợp 24

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 26

TÀI LIỆU THAM KHẢO 27

PHỤ LỤC 19

Trang 3

LỜI NÓI ĐẦU

Trước sự phát triển như vũ bão của công nghệ thông tin và nhu cầu giải trí của con người cũng tăng lên theo từng ngày, con người ngày càng sử dụng nhiều game cho mục đích giải trí của mình Game đang ngày càng phát triển đa dạng và phong phú trên mọi nền tảng ở mọi thiết bị từ điện thoại di động, smart phone, laptop đến máy tính để bàn…

Trước nhu cầu sử dụng game để giải trí ngày càng gia tăng cùng với sự pháttriển của khoa học cong nghệ và đặc biệt là sự thành công của game flapy bird trong thời gian gần đây đánh dấu một bước ngoặt cho sự phát triển của dòng gameđơn giản và dễ chơi Nắm bắt được cơ hội nhóm chúng em quyết định lựa chọn để tài Xây dựng Game đối kháng

(có chút thay đổi so với đề tài game được giao là xây dựng game RPG) với ưu thế đơn giản dễ chơi, đồ họa đẹp mắt và bám theo cốt truyện của bộ truyện tranh

maga nổi tiếng ONE PIECE chúng em tinh tưởng sản phẩm sẽ có được chỗ đứng trên thị trường

Trong quá trình thực hiện chúng em gặp phải nhiều khó khăn và sai sót mong thầy cô và các bạn đánh giá khách quan và đóng góp giúp nhóm kịp thời sửa chữa Cuối Cùng để hoàn thành được bài tập lớn này, nhóm chúng em xin được gửi lời cảm ơn chân thành đến thầy/cô giáo hướng dẫn đề tài cô Vũ Thị Hương Giang, thầy Trinh Thành Trung, Giảng viên Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội - đã hết lòng giúp đỡ, hướng dẫn, chỉ dạy tận tình để nhóm

em hoàn thành được đề tài này

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

3

NHÓM 35 LỚP KSCLC K57

Trang 4

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

cả các map

-Tích lũy đầy đủ kiến thức java cơ bản -Tìm hiểu và xây dựng thuật toán xử

lý các loại va chạm

-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 giao diện khi khởi chạy

-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 thanh trong game

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

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…

Trang 5

động của nhân vật Tuần 3 Thực hiện viết

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 chúng trong game

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

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à Tổng quát hóa Xây dựng bổ Hoàn thiệ giao diện và các lớp Hoàn thiện nốt các xử

5

NHÓM 35 LỚP KSCLC K57

Trang 6

quản lý đạn chuyển

động của các thành phần thông qua lớp

animation

sung các phương thức chuyển động của nhan vật

và các skill

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

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à

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

và test, và làm báo cáo, viết tài liệu.

Tính chính, đánh giá

và test,

và làm báo cáo, viết tài liệu.

Tính chính, đánh giá và test, và làm báo cáo, viết tài liệu.

Tính chính, đánh giá

và test, và làm báo cáo, viết tài liệu.

ý kiến, xây dựng

hệ thống

Hoàn thành công việc đúng thời gian quy định.

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

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.

Trang 7

Ý thức tốt thời gian

quy định.

Ý thức tốt

Ý thức tốt

CHƯƠNG 1: MÔ TẢ YÊU CẦU

1.1Mô 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 Diagram

Hình 1: biểu đồ use case

MOVE

EXIT

ATTACKSELECT

MAP

Trang 8

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

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

Người chơi click vào nút back

Hệ thống sẽ quay trở lại menu start

Trang 9

cao

Trang 10

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

Người chơi nhấn cácphím di chuyển hìnhmũi tên

Nhân vật di

chuyển sang

phải

Nhân vật dichuyển sangtrái

Nhân vậtnhảy lên

Trang 11

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

CHƯƠNG 2: THIẾT KẾ CHI TIẾT

H

11

NHÓM 35 LỚP KSCLC K57

Trang 12

Hình 4 Biểu đồ lớp 1

Trang 13

Hình 5: biểu đổ lớp 22.1.2 Thiết Kế Chi Tiết Lớp

Trang 14

- Board(int level) khới tạo mỗi Board theo từ level

- iniBoard(int level) để thực hiện phương thức Board() ở trên

- paint(Grapichs g): để vẽ lên panel, trong phương thức paint được dùng để vẽ nhân vật, quái vật, background, mà một số thành phần khác của map

- run(): để thực hiện luồng được implement từ Runnable trong phương thức run() sử dụng vòng lặp và Thread.sleep() và gọi đến các hàm update của luffy,min1,bullet,bg và hàm 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

- 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 sự kiện nhấn phím

- keyReleased(KeyEvent e) bắt sự kiện khi nhả phím

- TopRect() trả về hình chữ nhật chứa nửa thân trên của nhân vật

- BotRect() trả về hình chữ nhật chứa nửa thân dưới của nhân vật

- BoundsRect() trả về hình chữ nhật chứa đường bao ngoài toàn hình của nhân vật

Trang 15

- EspaceRect() trả về hình chữ nhật thể hiện vùng đánh quái

- Ngoài ra còn có các phương thức geter,seter tương tứng với các thuộc tính

- 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 quái đuổi theo nhân vật, khi vào một khoảng nhất định quái sẽ tung ra các skill,skill1 để tấn công nhân vật và khi đượ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

Trang 17

phương thức dùng để khởi tạo frame có chứa 2 panel là Jpanel1 và Jpanel2

Jpanel1 có chứa các button start help quit trên mỗi button được đăng ký để nghe các sựkiện click chuộn

Jpanel 2: có chứa button back và các label từ 0 đến 9

Button và label được gắn 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

o Tính năng, ưu điểm của các công nghệ này: Kiến trúc thiết kế tốt, cộng đồng

mạnh, do là công nghệ mở, chạy tốt trên nhiều platform khác nhau (nhất là trên linux)

o Lý do lựa chọn/sử dụng công nghệ: các ứng dụng có khả năng chạy thống nhất

trên nhiều nền tảng mà chỉ cần biên dịch một lần

- Môi trường lập trình: NetBean IDE và Eclipse IDE.

Trang 18

Hình 6: giao diện khi bắt đầu vào game

Trang 19

Hình 7: Dialog Help

19

NHÓM 35 LỚP KSCLC K57

Trang 20

Hình 8: giao diện lựa chọn map

Trang 21

Hình 9: Giao diện khi Chơi game 1

21

NHÓM 35 LỚP KSCLC K57

Trang 22

Hình 10: Giao diện khi chơi game 2

Trang 23

Hình 11: Giao diện khi chơi game 3

Hình 12: Giao diện khi chơi game 4

23

NHÓM 35 LỚP KSCLC K57

Trang 24

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ách…

- Cách thức trình bày khoa học, sáng sủa, dễ theo dõi, có gắn kết giữa các phần, đầy đủ các phần theo m ẫu.

Kiểm chứng thiết kế và kỹ năng lập trình

Theo các tiêu chí đánh giá

- Thiết kế và mã nguồn chương trình cần đáp ứng các yêu cầu tối thiểu của các nguyên lý công nghệ hướng đối tượng: Mức độ trừu tượng hoá, đóng gói, mô-đun hoá và phân cấp.

- Phong cách lập trình thống nhất, tuân thủ các quy ước lập trình chung

- Các chức năng của chương trình

Với mỗi chức năng use case của chương trình, cần đưa ra các trường hợp kiểm thử (test case) cần được thực hiện Mỗi trường hợp kiểm thử cần đặc tả chi tiết bao gồm những thông tin sau:

- Tên use case (tên chức năng)

- Tên trường hợp kiểm thử

- Người lập trình (tên thành viên nhóm kia trực tiếp lập trình chức năng này)

Trang 25

- Người kiểm thử (tên thành viên nhóm này thực hiện kiểm thử tích hợp)

- Trạng thái: Còn lỗi, Chạy thông Nếu còn lỗi, cần có thêm thông tin: Các bước cần thực hiện để tái tạo lỗi.

Ví dụ về bảng kiểm thử chức năng:

Mã lỗi Tên lỗi Use case Trạng thái Người tạo Loại lỗi Các bước tái tạo lỗi / Dữ liệu kiểm thử Kết quả thực tế

UC01-01 Các thông báo lỗi không là màu đỏ - Thêm/sửa môn thi- Thêm/sửa bài thi Còn lỗi LongNV 2- Giao diện người dùng

 Nhập dữ liệu sai ít nhất 1 trường

 Nhấn nút Thêm mới/Cập nhật

 Thông báo lỗi hiện lên là màu đen

 File ảnh đính kèm: StyleDo.jpg

1-UC01-02 Không xử lý validate cho trường

Thời gian thi Cập nhật bài thi Còn lỗi TrangNT

1- Chức năng (logic)

 Gõ thời gian thi gồm

cả ký tự

 Nhập các trường khác bình thường

 Nhấn nút Cập nhật

 Thông báo: "Có lỗi nghiêm trọng xảy ra Input string was not

in a correct format"

 File ảnh đính kèm: ThoiGianThi.jpg

2-UC02-01 Chức năng Print không hoạt động Thi thật Còn lỗi NhungTT 1- Chức năng (thiếu

chức năng)

 Tiến hành chọn bài thi và thi

Trang 26

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 thời hạn.

- Ưu điểm: Giao diện thân thiện với người dùng, có đầy đủ các chức năng theo yêu cầu, nội dung bám theo đúng cốt truyện

- Nhược điểm: dung lượng chương trình lớn, số lương skill nhân vật còn ít các thành phần trên map còn ít

- Hướng phát triển cho đề tài, cho sản phẩm và khả năng ứng dụng: phát

triển mở rộng số lượng map số lương skill các thành phần trên map, bám theo cốt truyện mở rộng nền tảng sang android

Trang 27

TÀI LIỆU THAM KHẢO

[1] Head First JAVA: Kathy Sierra and Bert Bate

[2] Slide lập trình hướng đối tượng trên hệ thống ACU.

[3] Zetcode.com

[4] Kilobolt.com

[5] Docs.oracle.com

[6] Blog study and share trên youtube

[7] Các tài liệu khác trên Internet

PHỤ LỤC

 Hướng dẫn cài đặt

 Yêu cầu hệ điều hành Windows XP/7/8 hoặc Linux

 Cài đặt Java development kit JDK( dowload tại

http://www.oracle.com/technetwork/java/javase/downloads/index.ht ml)

 Cài đặt Eclipse IDE(dowload tại https://eclipse.org/downloads/) và thiết lập biến môi trường cho java

 Trong giao diện của Eclipse chọn File -> Import

27

NHÓM 35 LỚP KSCLC K57

Trang 28

Chọn next

Chọn đường dẫn đến thư mục chứa project

Trang 29

Ấn ok Sau đó chuột phải vào project vừa import chọn Run As chọn java application

 Hướng dẫn sử dụng

Sau khi khởi chạy chương trình:

29

NHÓM 35 LỚP KSCLC K57

Trang 30

Chọn Start đề vào chọn map!

Chọn help đề xem hướng dẫn chơi

Sauk hi chọn start:

Trang 31

Click vào mỗi hình elip thể hiện các hòn đảo ở bên tay phải (clicl here) để vào mỗi map và click mũi tên quay lại để trở lại

31

NHÓM 35 LỚP KSCLC K57

Ngày đăng: 03/06/2015, 20:13

HÌNH ẢNH LIÊN QUAN

Hình 1: biểu đồ use case - Báo cáo bài tập lớn Xây dựng game 2d
Hình 1 biểu đồ use case (Trang 7)
Hình 2: biểu đồ use case phân giã 1 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 2 biểu đồ use case phân giã 1 (Trang 9)
Hình 3: biểu đồ use case phân giã 2 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 3 biểu đồ use case phân giã 2 (Trang 10)
Hình 4 Biểu đồ lớp 1 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 4 Biểu đồ lớp 1 (Trang 12)
Hình 5: biểu đổ lớp 2 2.1.2 Thiết Kế Chi Tiết Lớp - Báo cáo bài tập lớn Xây dựng game 2d
Hình 5 biểu đổ lớp 2 2.1.2 Thiết Kế Chi Tiết Lớp (Trang 13)
Hình 6: giao diện khi bắt đầu vào game - Báo cáo bài tập lớn Xây dựng game 2d
Hình 6 giao diện khi bắt đầu vào game (Trang 18)
Hình 7: Dialog Help - Báo cáo bài tập lớn Xây dựng game 2d
Hình 7 Dialog Help (Trang 19)
Hình 8: giao diện lựa chọn map - Báo cáo bài tập lớn Xây dựng game 2d
Hình 8 giao diện lựa chọn map (Trang 20)
Hình 9: Giao diện khi Chơi game 1 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 9 Giao diện khi Chơi game 1 (Trang 21)
Hình 10: Giao diện khi chơi game 2 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 10 Giao diện khi chơi game 2 (Trang 22)
Hình 11: Giao diện khi chơi game 3 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 11 Giao diện khi chơi game 3 (Trang 23)
Hình 12: Giao diện khi chơi game 4 NHÓM 35 LỚP KSCLC K57 23 - Báo cáo bài tập lớn Xây dựng game 2d
Hình 12 Giao diện khi chơi game 4 NHÓM 35 LỚP KSCLC K57 23 (Trang 23)

TỪ KHÓA LIÊN QUAN

w