Tải bản đầy đủ (.docx) (26 trang)

Báo cáo JAVA game Kunny

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 26 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

3. Điều kiện thắng thua...7

III. Thiết kế các đối tượng...8

2.5. Xây dựng âm thanh trò chơi...18

IV. Kết quả đạt được...19

1. Giao diện...19

2. Chuyển động nhân vật (animation)...23

V. Cải thiện và nâng cấp...25

TÀI LIỆU THAM KHẢO...26

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>DANH MỤC HÌNH ẢNH</b>

<small>Hình 1 Phương thức xây dựng nhân vật...9</small>

<small>Hình 2 Phương thức xử lí sự kiện người chơi di chuyển...10</small>

<small>Hình 10 Phương thức xây dựng animation (Ví dụ tấn cơng slime)...17</small>

<small>Hình 11 Phương thức xây dựng âm thanh trị chơi...18</small>

<small>Hình 12 Giao diện chọn màn chơi game...19</small>

<small>Hình 13 Màn chơi ổ kiến ma...20</small>

<small>Hình 14 Màn chơi cứu gà con...20</small>

<small>Hình 15 Màn chơi Thành trên khơng...21</small>

<small>Hình 16 Kẻ địch tấn cơng nhân vật...21</small>

<small>Hình 17 Đạn nổ...22</small>

<small>Hình 18 Giao diện thắng...22</small>

<small>Hình 19 Giao diện thua...23</small>

<small>Hình 20 Sprite Sheet nhân vật chuyển động...23</small>

<small>Hình 21 Sprite Sheet Gà tấn cơng...23</small>

<small>Hình 22 Sprite Sheet Kiến tấn cơng...24</small>

<small>Hình 23 Sprite Sheet Slime tấn cơng...24</small>

<small>Hình 24 Sprite Sheet đạn nổ...24</small>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>LỜI NĨI ĐẦU</b>

Cơng nghệ thơng tin (CNTT) đang ngày càng đóng vai trị quan trọng trong cuộc sống hàng ngày của chúng ta, đặc biệt là trong lĩnh vực giải trí và giáo dục. Việc ứng dụng CNTT vào các trị chơi truyền thống khơng chỉ là một cách thú vị để khám phá và tận hưởng, mà còn là một cơ hội tuyệt vời để rèn luyện kỹ năng lập trình và tư duy logic. Gunny, với sức hút và sự phổ biến rộng rãi, là một trong những trò chơi trực tuyến được nhiều người yêu thích. Việc chuyển đổi và tái tạo trò chơi này thành phiên bản điện tử sẽ mang lại không chỉ trải nghiệm thú vị cho người chơi mà còn là một thách thức đầy sáng tạo đối với các nhà phát triển. Chính vì vậy, trong bài tập lớn mơn Java này, em đã lựa chọn đề tài "Lập trình Game bắn súng Gunny". Bằng việc áp dụng kiến thức lập trình và hiểu biết về cơ chế hoạt động của trò chơi, em đã tạo ra một phiên bản Gunny điện tử sáng tạo và hấp dẫn, giúp tăng cường kỹ năng lập trình và hiểu biết về trị chơi của chính mình.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

I. Đặt vấn đề

Trong thế giới game bắn súng Kunny, không chỉ yêu cầu may mắn mà còn đòi hỏi sự khéo léo và chiến lược. Mặc dù trị chơi có thể dễ dàng hấp dẫn bằng việc chỉ có một số lượng giới hạn các vũ khí và các yếu tố trên trường chiến, nhưng sự phức tạp của nó vẫn địi hỏi người chơi phải có khả năng đánh giá tình hình và lập kế hoạch chiến lược một cách tỉ mỉ và logic. Kunny là một trong những trò chơi bắn súng trực tuyến phổ biến nhất trên thế giới, thu hút hàng triệu người chơi từ mọi lứa tuổi và mọi tầng lớp xã hội.

Khơng chỉ là một trị chơi giải trí, Kunny cịn là một môn thể thao điện tử và một cách để rèn luyện khả năng phản xạ nhanh nhạy và chiến thuật linh hoạt. Trong thời đại của công nghệ thông tin hiện đại, với sự phát triển của các trò chơi điện tử và ứng dụng trên điện thoại di động, Kunny vẫn giữ được sức hút và giá trị giải trí của mình. Máy tính khơng chỉ làm tăng thêm sự thú vị của trị chơi này mà còn cung cấp cơ hội cho người chơi để rèn luyện kỹ năng, chiến thuật và tương tác cộng đồng.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

II. Luật chơi

 Phương thức tấn công: Slime nhảy vào người chơi gây sát thương và di chuyển qua 3 vị trí bất kì đã được chỉ định

 Đầu game nhân vật và kẻ địch sẽ nhận được 100 máu, mỗi lần tấn công sẽ tạo 10 sát thương

2. Di chuyển  Nhân vật:

 Sử dụng phím mũi tên ←, → để di chuyển bò sang trái, phải  Sử dụng phím mũi tên ↑, ↓ để điều chỉnh hướng bắn

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

3. Điều kiện thắng thua

 Màn chơi sẽ kết thúc khi máu của nhân vật hoặc kẻ địch về 0

 Khi máu người chơi về 0: Màn hình hiển thị thơng báo thua cuộc (Defeat)  Khi máu kẻ dịch về 0: Màn hình hiển thị thông báo chiến thắng (Victory)

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

III. Thiết kế các đối tượng

1. Cấu trúc dự án

 Game được thiết kế trong 1 package GiaoDien:

 Class AngleBar.java: xử lí hành động căn góc bắn

 Class BOM.java, ant.java, move_left.java, slime_at.java, stand.java, stand_left.java, MoveCharacter_Boy.java, Chic_At.java: lưu thông tin chuyển động hiệu ứng chuyển động nhân vật, kẻ địch và đạn nổ

 Class Boss.java: xử lí các hành động của kẻ dịch  Class Bullet.java: xử lí các hành động của viên đạn  Class BulletManager.java : lưu trữ viên đạn

 Class Defeated.java, Victory.java

 Class DoHoaGC.java: lưu thông tin và khởi tạo màn chơi cứu gà con  Class DoHoaOKM.java: lưu thông tin và khởi tạo màn chơi ổ kiến ma  Class DoHoaTTK.java: lưu thông tin và khởi tạo màn chơi thành trên

 Class GameInterface.java: khởi động trò chơi

 Class Object.java: lưu thông tin cơ bản các đối tượng cụ thể trong trò chơi  Class ObjectManager.java: lưu trữ các đối tượng và xử lí thơng tin chung  Class Player.java: xử lí các hành động của nhân vật

 Class PowerBar.java: lưu thông tin thanh lực

 Class SoundPlayer.java: xử lý nhạc nền, hiệu ứng âm thanh.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

2. Xây dựng các phương thức 2.1. Xây dựng nhân vật

<i><small>Hình 1 Phương thức xây dựng nhân vật</small></i>

Thiết lập vị trí, thanh máu và trạng thái nhân vật

2.1.1. Xử lí sự kiện người chơi di chuyển

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i><small>Hình 2 Phương thức xử lí sự kiện người chơi di chuyển</small></i>

Gán biến sự kiện di chuyển trái phải của người chơi với mũi tên →, ←

Khi biến sự kiện nhận tín hiệu từ bán phím, nhân vật sẽ di chuyển tương ứng với phím được bấm theo logic vị trí sau khi bấm nút = vị trí ban đầu ± vận tốc nhân vật.

2.1.2. Xử lí sự kiện người chơi chỉnh lực và góc bắn

<i><small>Hình 3 Phương thức xử lí sự kiện chỉnh lực và góc bắn</small></i>

Gắn biến sự kiện căn góc bắn của người chơi theo mũi tên ↑, ↓ Gắn biến sự kiện căn lực bắn của người chơi theo phím Y

Khi biến sự kiện nhận tín hiệu từ bán phím, nhân vật sẽ thao tác theo các phương thức đã khởi tạo.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

2.2. Xây dựng đạn bắn

<i><small>Hình 4 Phương thức xây dựng đạn bắn</small></i>

Thiết lập tốc độ bay và sát thương viên đạn

2.2.1. Tạo ra viên đạn gắn với người chơi

<i><small>Hình 5 Phương thức tạo viên đạn gắn với người chơi</small></i>

Khởi tạo viên đạn gắn với người chơi. Vị trí viên đạn bắn tới được tính dựa theo đường thẳng với lực và hướng bắn đã lấy được từ sự kiện căn góc và căn lực bắn.

Sau khi cập nhật được vị trí viên đạn bắn tới thì khởi tạo viên đạn và kiểm tra va chạm kẻ địch.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

2.2.2. Xử lí va chạm viên đạn với kẻ địch

<i><small>Hình 6 Phương thức xử lí va chạm với kẻ địch</small></i>

Tạo biến bossBounds để lưu trữ vùng bao quanh kẻ địch, biến bulletBounds để tạo vùng bao quanh viên đạn. Kiểm tra nếu vùng bao quanh viên đạn va chạm với vùng bao quanh kẻ địch thì gọi hàm để trừ máu kẻ địch

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

2.3. Xây dựng kẻ địch

<i><small>Hình 7 Phương thức xây dựng kẻ địch</small></i>

Thiết lập vị trí, thanh máu và trạng thái kẻ địch

2.3.1. Xử lí sự kiện kẻ địch di chuyển

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i><small>Hình 8 Phương thức di chuyển kẻ địch</small></i>

Xây dựng phương thức di chuyển kẻ địch đến tấn công nhân vật rồi di chuyển đến vị trí mới bất kì đã được chỉ định

2.3.2. Xử lí sự kiện kẻ địch tấn cơng

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i><small>Hình 9 Phương thức xử lí kẻ địch tấn tông</small></i>

Xây dựng phương thức tấn công nhân vật: Khi kẻ địch di chuyển tới gần nhân vật, nhân vật chạm tới phạm vi tấn công của kẻ địch sẽ nhận sát thương 10 máu

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

2.4. Xây dựng animation

<i><small>Hình 10 Phương thức xây dựng animation (Ví dụ tấn cơng slime)</small></i>

Tạo biến spriteSheet lưu trữ hình ảnh chuyển động nhân vật, chia frame theo số lượng khung hình chuyển động của hình ảnh được truyền vào. Phương thức scaleSpriteSheet để thu phóng hình ảnh vừa với khung hình màn chơi

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

2.5. Xây dựng âm thanh trị chơi

<i><small>Hình 11 Phương thức xây dựng âm thanh trò chơi</small></i>

<small>Khởi tạo class SoundPlayer chứa phương thức playSound để truyền đường dẫn âm thanh dưới dạng .wav </small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

IV. Kết quả đạt được

 Game bắn súng Kunny với cơ chế PvE

 Game bao gồm những phương thức cơ bản của 1 trò chơi

1. Giao diện

 Menu chọn màn chơi:

<i><small>Hình 12 Giao diện chọn màn chơi game</small></i>

 Giao diện đầu màn:

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i><small>Hình 13 Màn chơi ổ kiến ma</small></i>

<i><small>Hình 14 Màn chơi cứu gà con</small></i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<i><small>Hình 15 Màn chơi Thành trên khơng</small></i>

 Kẻ địch tấn cơng nhân vật

<i><small>Hình 16 Kẻ địch tấn cơng nhân vật</small></i>

 Đạn nổ

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<i><small>Hình 17 Đạn nổ</small></i>

 Giao diện thắng/ thua:

<i><small>Hình 18 Giao diện thắng</small></i>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<i><small>Hình 19 Giao diện thua</small></i>

2. Chuyển động nhân vật (animation)

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i><small>Hình 22 Sprite Sheet Kiến tấn cơng</small></i>

<i><small>Hình 23 Sprite Sheet Slime tấn cơng</small></i>

 Đạn nổ

<i><small>Hình 24 Sprite Sheet đạn nổ</small></i>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

V. Cải thiện và nâng cấp

 Chưa làm được map cửa hàng

 Chưa liên kết được các màn chơi với nhau  Chưa vẽ được đường đạn bay

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>TÀI LIỆU THAM KHẢO</b>

Slide bài giảng của cô Đào Thị Lệ Thủy

</div>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×