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

báo cáo bài tập lớn đề tài game shotplane

11 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Và đây sẽ là bài học đáng nhớcho em để có thể cẩn thận và tỉ mỉ nhiều hơn.Để tạo nên một chương trình hoàn thiện, chất lượng và cóthể sử dụng trong thực tiễn thì đòi hỏi chúng ta phải có

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘITRƯỜNG ĐIỆN – ĐIỆN TỬ

BÁO CÁO BÀI TẬP LỚNĐề tài:

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU CHUNG 2

1.1 Giới thiệu về chủ đề 2

1.2 Khó khăn và thách thức 2

1.3 Mục tiêu của đề tài 3

CHƯƠNG 2: PHÂN TÍCH BÀI TOÁN 3

2.1 Tổng quát 3

2.2 Sơ đồ hoạt động (Class Diagram) 3

2.3 Mô tả chi tiết chức năng 4

Trang 3

LỜI NÓI ĐẦU

Thời đại ngày nay, công nghệ thông tin càng ngày càng phổbiến, sau cuộc cách mạng công nghiệp năm 2013, công nghệngày càng phát triển và đặc biệt giải trí bằng công nghệ đãkhông phải là việc gì hiếm lạ gì nữa Vì muốn tạo cho mình mộtcơ sở để bắt đầu vào việc tạo ra nhiều game hay hơn, có thểtăng sự hứng thú của mọi người, giảm stress sau khi lao độngvất vả hay có thể làm một game về trí tuệ

Chính vì thế em xin được bắt đầu với một demo game (dùchưa được hoàn chỉnh) có thể giúp mọi người có thể vui vẻ saukhi làm việc vất vả Trong quá trình thực hiện đề tài này, em đãcố gắng thực hiện thật tốt, nhưng có lẽ, do vốn kiến thức cònhạn hẹp cũng như những yếu tố khách quan khác mà khôngtránh khỏi những sai sót Chúng em rất mong nhận được sựđóng góp ý kiến, phê bình và hướng dẫn thêm của thầy cô.

Cuối cùng thì em xin gửi lời cảm ơn đến PGS.TS Trần ThịThanh Hải đã hướng dẫn tận tình, giảng giải những kiến thứcgiúp em hoàn thành bài tập lớn này.

Chúng em xin chân thành cảm ơn!

P a g e | 1

Trang 4

CHƯƠNG 1: GIỚI THIỆU CHUNG1.1 Giới thiệu về chủ đề

Ngày nay công nghệ thông tin trở thành một lĩnh vực mũinhọn trong công cuộc phát triển kinh tế xã hội Cùng với côngnghệ sinh học và năng lượng mới, công nghê thông tin (CNTT)vừa là công cụ, vừa là động lực thúc đẩy quá trình công nghiệphóa, hiện đại hóa đất nước.

Có thể nói game đã và đang trở thành một nhu cầu giải tríthiết yếu trong cuộc sống của con người hiện nay Game bắntrứng khủng long hay là game bắn gà đã không còn xa lạ gìnữa Game đòi hỏi người chơi phải khéo léo cũng như khả năngquan sát để có thể được điểm cao, vượt qua vô số vật cản cómức độ từ dễ đến khó Một đặc điểm nổi bật của game này làcấu hình nhẹ, dễ sử dụng đối với người dùng Cũng từng là mộtngười chơi game này đến mức nghiện thì em muốn có thể pháttriển game này Nhưng hiện tại kiến thức còn chưa đủ nên emchỉ mới làm ra một phần demo đơn giản Tên gọi của nó là“ShotPlane”.

1.2 Khó khăn và thách thức

Trong quá trình thực hiện viết chương trình game, em cũngđã gặp không ít khó khăn cũng như thách thức về nội dung, kỹthuật

Ngay cả lúc add thư viện SDL em đã làm không chính xácdẫn đến nhiều kết quả sai lệch Và đây sẽ là bài học đáng nhớcho em để có thể cẩn thận và tỉ mỉ nhiều hơn.

Để tạo nên một chương trình hoàn thiện, chất lượng và cóthể sử dụng trong thực tiễn thì đòi hỏi chúng ta phải có kiếnthức nền tảng về ngôn ngữ lập trình C++ một cách chắc chắn,đầy đủ và chính xác, đặc biệt là lập trình hướng đối tượng (OOP)nhằm đảm bảo tính bảo mật cao, dễ dàng quản lý code khi cósự thay đổi và góp phần tiết kiệm tài nguyên hiệu quả Thêmvào đó, chương trình game khi được thực hiện phải được chuẩnbị kỹ, sẵn sàng thực hiện các thao tác hợp lý, chính xác, chương

P a g e | 2

Trang 5

trình phải được tối ưu, cần phải tính toán và điều chỉnh phù hợpcác giá trị thực tế như các hàm để tính trọng lực, khoảng cách…của các vật thể cũng như là nhân vật người chơi mà đây là mộtcông việc đòi hỏi sự tỉ mỉ, độ nhanh nhạy, chuẩn xác cao.

Bên cạnh đó, việc tìm lỗi và sửa lỗi trong chương trình cũnggặp rất nhiều khó khăn không mong muốn của người lập trình,sẽ khiến cho việc thực hiện chương trình bị ảnh hưởng, dẫn đếnchương trình chạy không đúng ý người lập trình hoặc chạy saichức năng.

Ngoài ra, chương trình cũng phải đáp ứng các yêu cầu nhưdễ dàng sử dụng, thuận tiện cho người dùng, phải nhẹ, phù hợpvới mọi loại thiết bị và đảm bảo tính giải trí, đáp ứng nhu cầucủa người dùng

1.3 Mục tiêu của đề tài

+ Chia sẻ một tựa game phù hợp cho mọi lứa tuổi giúp thưgiãn vào lúc rảnh rỗi, giảm bớt các căng thẳng trong học tậpcũng như là công việc,

+ Việc học ở cấp độ đại học có thể nói là rất căng thẳng nênđề tài game này có thể một phần nào đó giúp các bạn sinh viênBách Khoa nói riêng và các bạn học sinh sinh viên nói chung cóthể giải trí, kích thích trí não, và luyện phản xạ mắt sau nhữnggiờ học ở trường.

CHƯƠNG 2: PHÂN TÍCH BÀI TOÁN2.1 Tổng quát

1 Thiết lập hình nền hay gọi là thế giới cho game2 Thiết lập nhân vật chính (Player)

3 Thiết lập các mối đe dọa (Threats)

4 Thiết lập những hiệu ứng của nhân vật chính và mối đedọa

- Di chuyển thông qua bàn phím (Left – Right – Top –Bottom)

P a g e | 3

Trang 6

- Bắn đạn (Bullet) thông qua con chuột (Mouse)5 Thiết lập những hiệu ứng khi va chạm

- Nhân vật chính trúng đạn hay đụng vô mối đe dọa sẽ tửvong và các mối đe dọa trúng đạn sẽ biến mất.

6 Thiết lập âm thanh cho các vụ nổ (Explosion)7 Thiết lập màn hình có thể di chuyển

- Tạo không gian và có nhiều điều thú vị trong thế giớicủa game

8 Thiết lập số mạng cho nhân vật chính

2.2 Sơ đồ hoạt động (Class Diagram)Danh sách các Class:

1 Class Common_Function.h: chứa những dữ liệu cứng để cóthể thay thế nhanh gọn khi cần thiết và chứa những hàm xử líhình ảnh (input và output background, player và threats, vụ nổ).

2 Class BaseObject.h: Là class chứa các hàm xử lí tọa độxuất hiện của nhân vật chính và các mối đe dọa và update liêntục màn hình.

3 Class MainObject: Là class kế thừa của BaseObject chứanhững hàm xử lí những vấn đề liên quan đến nhân vật chính:nhận sự kiện từ bàn phím tạo ra những di chuyển, nhận sự kiệntừ chuột để bắn đạn.

4 Class ThreatsObject: Là class kế thừa của BaseObject chứanhững hàm xử lí những vấn đề liên quan đến mối đe dọa: cácmối đe dọa sẽ xuất hiện ngẫu nhiên và cũng liên tục bắn đạn vàquỹ đạo di chuyển đều là đường thẳng.

5 Class BulletObject: Là class kế thừa của BaseObject chứanhững hàm xử lí vẫn đề liên quan đến đạn: đạn của nhân vậtchính xuất hiện lúc nào và đi đến đâu sẽ biến mất.

6 Class ExplosionObject: Là class xử lí vụ nổ, khi nhân vậtchính bị đạn của mối đe dọa hay mối đe dọa đụng đến thì sẽ cómột vụ nổ diễn ra.

P a g e | 4

Trang 7

7 Class Playerpower: Là class xử lí về số mạng của nhân vậtchính

Quá trình phần mềm chạy:

Đầu tiên khi phần mềm được khởi chạy, chưa được hoànthiện nên chưa có giao diện của trò chơi, nên khi khởi chạy sẽbắt đầu luôn vô game chính, sau đó sử dụng phím (Right – left –bottom – top) để di chuyển mỗi lần nhấn nút, màn hình sẽ đượcupdate liên tục và cũng sẽ giải phóng bộ nhớ liền Và khi nhânvật chính sử dụng hết số mạng sẽ gặp cửa sổ “Game Over” Vàkhi đó kết thúc

2.3 Mô tả chi tiết chức năng2.3.1 Giao diện trong game

+ Nền của trò chơi (bao gồm hình ảnh bầu trời, con đường)+ Hình ảnh người chơi: máy bay

+ Thanh công cụ tính điểm.

+ Các loại vật cản được thiết kế là các máy bay tiến đến ởmột tọa độ ngẫu nhiên.

2.3.3 Lối chơi (Gameplay)

Trò chơi được thiết kế để người chơi thư giãn và luyện phảnxạ Mục tiêu của trò chơi được lấy cảm hứng từ game bắn gà,với lối chơi là né tránh các vật cản và sống sót càng lâu càngtốt.

Cách chơi rất đơn giản, người chơi sử dụng các phím (Right –Left – Top – Bottom) để điều khiển nhân vật và sử dụng nhấnchuột trái (Laser) và phải (đạn cầu) để tiêu diệt mối đe dọa Các vật cản sẽ ngẫu nhiên xuất hiện và di chuyển nhanh vềphía người chơi dựa trên độ khó hiện tại của game Trò chơi diễnra càng lâu, độ khó sẽ ngày càng tăng Từ đó, điểm số ngườichơi nhận được sẽ tỉ lệ thuận với độ khó.

2.3.4 Màn hình kết thúc (Gameover)

Khi người chơi va chạm với vật cản, người chơi sẽ bị nổ vàmất một mạng, và đến khi nhân vật chính sử dụng hết số mạng

P a g e | 5

Trang 8

mình có (hiện tại em để là 3 mạng), màn hình kết thúc sẽ xuấthiện “GameOver”.

2.4 Đánh giá

Để tạo nên trò chơi này, chúng em đã sử dụng những kiếnthức học được ở trên lớp và sự hỗ trợ của SDL cùng với nhữngthư viện khác <vector> hay <string> để tạo ra những Classkhác nhau đảm nhận từng chức năng cụ thể trong trò chơi Tuynhiên, vì hạn chế về mặt kiến thức và chưa đủ nghiên cứu nêntrò chơi vẫn chưa được hoàn thiện và còn rất nhiều điều có thểphải hoàn thiện nữa.

CHƯƠNG 3: PHƯƠNG PHÁP THỰC HIỆN3.1 Phương pháp đề xuất

+ Nhằm tạo ra một tựa game để mọi người giải trí miễn phí,em đưa ra phương pháp để giải quyết mục tiêu là: tạo ra mộtgame với Gameplay đơn giản, mối đe dọa đơn giản và tên chonó là “ShotPlane”.

+ Sử dụng các thuật toán dùng ngôn ngữ lập trình C/C++ đểthực hiện viết chương trình và tạo nên ứng dụng (Môi trường –Visual Studio 2022).

+ Sử dụng môi trường lập trình thông minh, thuận tiện đểphát triển nhanh các chương trình một cách dễ dàng và tạođược các chương trình một cách nhanh chóng dựa trên ngônngữ lập trình C/C++.

+ Dựa vào những kiến thức về lập trình C/C++ đã được họctrên lớp, sự hỗ trợ của giảng viên bộ môn và cùng tham khảo tàiliệu trên mạng internet, từ đó viết được chương trình theo mụctiêu: Sử dụng thư viện SDL, một số hàm đơn giản sẵn có để pháttriển lối chơi và tạo hình ảnh trong game.

+ Sau khi tạo lập ứng dụng thì dùng thử và sửa lỗi (nếu có).+ Viết bài cáo về game từ các bước thực hiện, phương pháp,mục tiêu, kết quả.

P a g e | 6

Trang 9

Sơ lược lý thuyết của phương pháp:

+ Từ các chức năng có sẵn trong môi trường lập trình như mẫu(Templates lớp (Class) kết hợp với ngôn ngữ C++ (con trỏ, chuỗi,mảng ).

+ Sử dụng các lý thuyết cơ bản về lập trình hướng đối tượngđể tạo ra cấu trúc hợp lý cho phần mềm.

+ Tạo ra giao diện trò chơi và hệ thống vẽ trò chơi với sự trợgiúp của thư viện SDL.

+ Cuối cùng là thử nghiệm ứng dụng và khắc phục các lỗi(nếu có).

3.2 Cài đặt thử nghiệm3.2.1 Môi trường cài đặt

+ Bản đầy đủ của game có thể được cài đặt trên nền tảngWindows

+ Mã nguồn của game có thể được sử dụng để build game cóthể chạy được trên Windows sau khi cài đặt một số thư viện vàphần mềm.

3.2.2 Triển khai cài đặt

Hiện tại em chưa đưa game này lên được Vì thế nếu có thểtrong thời gian tới em sẽ cố gắng hoàn thiện và phát triển hơnrồi đưa lên ạ

3.3 Thực nghiệm

Không có.

CHƯƠNG 4: KẾT LUẬN 4.1 Kết luận

Sau khi kết thúc quá trình làm kết quả đạt được:

- Xây dựng được gameplay đơn giản, giúp người chơi dễ tiếpcận.

- Thiết kế giao diện gần gũi, hài hước.

P a g e | 7

Trang 10

- Hoàn thiện trò chơi với hầu hết các chức năng cơ bản củamột tựa game 2D.

- Phần mềm được xây dựng với cấu trúc cực kì khoa học,giúp cho việc phát triển và sửa lỗi được dễ dàng hơn Chúng emđạt được việc này với sự trợ giúp của những lý thuyết cơ bản vềlập trình hướng đối tượng.

4.2 Thiếu sót và điều sẽ bổ sung trongtương lai

Menu game và có boss cuối của game nếu chiến thắng sẽqua cửa.

Sẽ thêm về vấn đề thời gian.

Sẽ thêm về vấn đề level cấp của game.

4.3 Kiến nghị, đề xuất 4.3.1 Đối với bài tập lớn

Chúng em hy vọng, cô có thể giới thiệu thêm nhiều chủ đề bàitập lớn hơn trong quá trình giảng dạy.

4.3.2 Đối với môn học

Chúng em xin gửi lời cảm ơn đến PGS.TS Trần Thị Thanh Hảiđã hướng dẫn tận tình, giảng giải những kiến thức, giúp chúngem hiểu rõ hơn những kiến thức về lập trình C/C++ qua nhữngbài giảng lí thú, hấp dẫn đối với sinh viên chúng em.

P a g e | 8

Trang 11

TÀI LIỆU THAM KHẢO

[1] Giáo trình C++ và lập trình hướng đối tượng (2018) – Nhàxuất bản Bách Khoa Hà Nội – Phạm Văn Ất

[2] Phát Triển Phần Mềm 123AZ - Sức Mạnh Của Đam Mê(phattrienphanmem123az.com) trang web làm game.

[3] Thư viện SDL : Thư viện SDL_Input - Tải xuống (onworks.net)

P a g e | 9

Ngày đăng: 11/06/2024, 17:51

w