TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN LẬP TRÌNH JAVA ĐỀ TI: LẬP TRÌNH GAME PACMAN Sinh viên thực hiện : LÊ QUANG SƠN : LÊ HUY ĐỒNG : NGUYỄN VIẾT TIẾN Giảng viên hướng dẫn : THS. TRẦN HỮU PHI Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D16CNPM2 Khóa : 2022 Hà Nội, tháng 11 năm 2022 PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: Họ và tên Chữ ký Ghi chú Lê Quang Sơn Lê Huy Đồng Nguyễn Viết Tiến Giảng viên chấm: Họ và tên Chữ ký Ghi chú Giảng viên chấm 1 : Giảng viên chấm 2 : MỤC LỤC Nội dung Trang I. Giới thiệu bài tập lớn “Lập trình ứng dụng game Bomberman”. Danh sách thành viên thực hiện và đóng góp của các thành viên.
Mô tả các tính năng của ứng dụng. Tổng quát về chương trình.Mô tả API(thư viện)chính được sử dụng trong code……………………45 1.Thư viện javafx………………………………………………………….Thư viện Java. Demo ứng dụng. Giới thiệu bài tập lớn “Lập trình ứng dụng game Bomberman” Lời đầu tiên bọn em xin gửi lời cảm ươn thầy đã hướng dẫn môn Lập trình java trong kì này , môn học quan trọng để bọn em có thể có kinh nghiệm trong việc thực tập.
Về lí do chọn đề tài , Game đặt Bomb đã là một thể loại Game mà ai cũng từng chơi khi nhỏ , và khi thầy cho bọn em tự chọn đề tài thì cả 3 bọn em đều muốn tạo dựng một Game đặt Bomb do chính tay bọn em làm .Đề tài giúp bọn em hiểu hơn về Java và quy trình làm game ạ. Đi sơ qua về game thì bọn em tạo dựng đầy đủ các yếu tố chính , và nó được chia làm 2 loại là nhóm đối tượng động (Bomber, Enemy, Bomb) và nhóm đối tượng tĩnh (Grass, Wall, Brick, Portal, Item). [09/05/2023 18:34:16] Đỗ Đăng Quyền: Các đối tượng Nếu bạn đã từng chơi Bomberman, bạn sẽ cảm thấy quen thuộc với những đối tượng này. Chúng được được chia làm hai loại chính là nhóm đối tượng động (Bomber, Enemy, Bomb) và nhóm đối tượng tĩnh (Grass, Wall, Brick, Portal, Item).
Bomber là nhân vật chính của trò chơi. Bomber có thể di chuyển theo 4 hướng trái/phải/lên/xuống theo sự điều khiển của người chơi. Bomb là đối tượng mà Bomber sẽ đặt và kích hoạt tại các ô Grass. Bomber có một lần được đi từ vị trí đặt Bomb ra vị trí bên cạnh.
Sau khi kích hoạt 2s, Bomb sẽ tự nổ, các đối tượng Flame được tạo ra. Grass là đối tượng mà Bomber và Enemy có thể di chuyển xuyên qua, và cho phép đặt Bomb lên vị trí của nó Wall là đối tượng cố định, không thể phá hủy bằng Bomb cũng như không thể đặt Bomb lên được, Bomber và Enemy không thể di chuyển vào đối tượng này Brick là đối tượng được đặt lên các ô Grass, không cho phép đặt Bomb lên nhưng có thể bị phá hủy bởi Bomb được đặt gần đó. Bomber và Enemy thông thường không thể di chuyển vào vị trí Brick khi nó chưa bị phá hủy. 1 Portal là đối tượng được giấu phía sau một đối tượng Brick.
Khi Brick đó bị phá hủy, Portal sẽ hiện ra và nếu tất cả Enemy đã bị tiêu diệt thì người chơi có thể qua Level khác bằng cách di chuyển vào vị trí của Portal. Các Item cũng được giấu phía sau Brick và chỉ hiện ra khi Brick bị phá hủy. Bomber có thể sử dụng Item bằng cách di chuyển vào vị trí của Item. SpeedItem tăng vận tốc di chuyển của bomber.
FlameItem tăng độ dài các Flame khi bomb nổ. BombItem giúp tăng số lượng Bomb có thể đặt thêm một. LifeItem tăng số mạng của bomber lên một. TimeItem tăng thời gian chơi.
StrengthItem làm cho bomb có thể nổ xuyên tường (và item). DetonatorItem giúp cho bomber có khả năng kích hoạt bomb nổ sớm bằng cách bấm phím D. Enemy là các đối tượng mà Bomber phải tiêu diệt hết để có thể qua Level. Balloom là Enemy đơn giản nhất, di chuyển ngẫu nhiên với vận tốc cố định.
Oneal di chuyển "thông minh" hơn, biết tìm đường để đuổi bomber. Broom có khả năng đi xuyên qua gạch. Bear có tốc độ di chuyển nhanh, có khả năng đuổi theo bomber ở một mức độ nhất định. Frog khi chết sẽ tạo ra 2 Balloom tại vị trí của nó.
Fire di chuyển nhanh, có thể phá hủy item khi chạm vào. Mô tả game play, xử lý va chạm và xử lý bom nổ II. Danh sách thành viên thực hiện và đóng góp của các thành viên TT Họ tên Mã số SV Nội dung thực hiện Ghi chú Phân tích Lập trình Viết mô chức năng thực thi tả tài liệu yêu cầu ứng dụng, giải pháp 2 thực thi 1 Lê Quang Sơn 21810310335 35% 60% 30% 2 Lê Huy Đồng 21810310631 35% 20% 40% 3 Nguyễn Viết Tiến 21810310518 30% 20% 40% 3 III. Mô tả các tính năng của Ứng dụng 1.
Tổng quát về chương trình P - Thư mục res: là thư mục chứa các dữ liệu cần xây dựng trong game(âm thanh,hình ảnh, …) - Thư mục src Là thư mục chứa code để hình thành nên một game 4 2. File res Đây là nơi chứa các dữ liệu cần xây dựng trong trò chơi hoạt động. Sau đây là các lớp có trong res a. audio Đây là nơi chứa những đoạn âm thanh của game - bom.wav là phần chứa video âm thanh khi đặt bom ,và đây là âm thanh của nó - clear.wav là âm thanh khi chạy lại từ đầu - dead1.wav là âm thanh khi chết lần 1 - dead2.wav là âm thanh khi chết lần 2 trở đi - gameaudio.wav là âm thanh trò chơi - getitem.wav là âm thanh khi nhận các item trong game - homestay.mp3 là âm thanh khi ở màn hình chính -intro.wav là âm thanh giới thiệu -putbomb.wav là âm thanh khi đặt bom - b.font -phần này nói về các phông chữ trong game : +ARCADE.fxmlbên trong Đây là một tệp FXML được sử dụng để định dạng giao diện người dùng cho một ứng dụng JavaFX.
Tệp được viết bằng ngôn ngữ đánh dấu XML và chứa các thành phần giao diện như VBox, Label và Button. Trong tệp này, có một VBox được sử dụng để định dạng giao diện người dùng. VBox này có thuộc tính alignment được đặt là CENTER và thuộc tính spacing được đặt là 20.0, cho phép các thành phần con trong VBox được căn giữa và có khoảng cách 20 đơn vị giữa chúng. Trong VBox, có hai thành phần con: một Label với văn bản "Bomberman" và một Button với fx:id là "playButton" và văn bản "Play".
Button này có một xử lý sự kiện onAction được đặt là "#switchToGame", cho phép khi người dùng nhấp vào nó, ứng dụng chuyển sang giao diện trò chơi. Cuối cùng, VBox có một thuộc tính padding được đặt với giá trị của Insets, cho phép đặt khoảng cách giữa các cạnh của VBox và các thành phần con bên trong.level - bản đồ của level 0 : +Đây là một bản đồ cho trò chơi, được biểu diễn bằng các ký tự. Mỗi ký tự tương ứng với một vật thể trên bản đồ: "#" đại diện cho tường. " " đại diện cho một ô trống.
"p" đại diện cho nhân vật chính. "f" đại diện cho một quái vật. "*" đại diện cho một vật phẩm. 9 "1", "2", "5", "6" đại diện cho các cửa chìa khóa, và chúng cần một chìa khóa tương ứng để mở ra.
"t" đại diện cho một chìa khóa. "s" đại diện cho một cửa ra. "b" đại diện cho một quả bom. "d", "w", "x" đại diện cho các cửa đi qua, và chúng có thể mở hoặc đóng lại Bản đồ này có kích thước 13x19 và bao gồm các phần bên trong khoảng trống và các vật thể, hình ảnh một màn chơi của trò chơi.
- Bản đồ level 1 : +Đây là một bản đồ cho trò chơi, được biểu diễn bằng các ký tự. Mỗi ký tự tương ứng với một vật thể trên bản đồ: "#" đại diện cho tường. " " đại diện cho một ô trống. "p" đại diện cho nhân vật chính.
"f" đại diễn cho một quái vật. "*" đại diễn cho một vật phẩm. 10 "1", "2", "3", "4" đại diễn cho các cửa chìa khóa, và chúng cần một chìa khóa tương ứng để mở ra. "t" đại diễn cho một chìa khóa.
"s", "d", "w", "x" đại diễn cho các cửa đi qua, và chúng có thể mở hoặc đóng lại. Bản đồ này có kích thước 13x19 và bao gồm các phần bên trong khoảng trống và các vật thể, hình ảnh một màn chơi của trò chơi. Bản đồ level 2 : +Đây là một bản đồ cho trò chơi, được biểu diễn bằng các ký tự. Mỗi ký tự tương ứng với một vật thể trên bản đồ: "#" đại diễn cho tường.
" " đại diễn cho một ô trống. "p" đại diễn cho nhân vật chính. "f" đại diễn cho một quái vật. "*" đại diễn cho một vật phẩm.
"1", "2", "3", "4" đại diễn cho các cửa chìa khóa, và chúng cần một chìa khóa tương ứng để mở ra. "t" đại diễn cho một chìa khóa. 11 "s", "d", "w", "x" đại diễn cho các cửa đi qua, và chúng có thể mở hoặc đóng lại. Bản đồ này có kích thước 12x31 và bao gồm các phần bên trong khoảng trống và các vật thể, hình ảnh một màn chơi của trò chơi.
- Bản đồ level 3: +Đây là một bản đồ cho trò chơi, được biểu diễn bằng các ký tự. Mỗi ký tự tương ứng với một vật thể trên bản đồ: "#" đại diễn cho tường. " " đại diễn cho một ô trống. "p" đại diễn cho nhân vật chính.
"f" đại diễn cho một quái vật. "*" đại diễn cho một vật phẩm. "1", "2", "3", "4", "5", "6" đại diễn cho các cửa chìa khóa, và chúng cần một chìa khóa tương ứng để mở ra. "t" đại diễn cho một chìa khóa.
"s", "d", "w", "x" đại diễn cho các cửa đi qua, và chúng có thể mở hoặc đóng lại. 12 Bản đồ này có kích thước 12x31 và bao gồm các phần bên trong khoảng trống và các vật thể, hình ảnh một màn chơi của trò chơi.Sprites - bomb Sau đây là các hình ảnh theo thứ tự từ trên xuống như hình trên : 13 - Enemy : + Sau đây là các hình minh họa của enemy theo thứ tự từ trên xuống như hình trên : 14 - Illustrasions 15 + Sau đây là các hình ảnh trong mục illustrations theo thứ tự như hình trên - Map 16 + Sau đây là hình ảnh của các phần tử trong map theo thứ tự như hình trên - Player +Sau đây là các hình ảnh của các phần tử trong phần player : 17 - Powerup 18 Sau đây là các hình ảnh có trong phần powerup theo thứ tự như hình trên: - Hình ảnh giao diện 19 + các hình ảnh dưới đây sẽ phù hợp với thứ tự của hình trên : 20 21 22 3.