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

Thông tin cơ bản

Tiêu đề Game: Shotplane
Tác giả Nguyễn Thị Hồng Ánh
Người hướng dẫn PGS.TS. Trần Thị Thanh Hải
Trường học Trường Đại học Bách Khoa Hà Nội, Trường Điện – Điện tử
Chuyên ngành Điện - Điện tử
Thể loại Bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 1,04 MB

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ỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ



BÁO CÁO BÀI TẬP LỚN

Đề tài:

GAME: SHOTPLANE

Sinh viên thực hiện: Nguyễn Thị Hồng Ánh – 20203319

Giảng viên hướng dẫn: PGS.TS TRẦN THỊ THANH HẢI

Hà Nội, tháng 01 năm 2022

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

2.4 Đánh giá 5

CHƯƠNG 3: PHƯƠNG PHÁP THỰC HIỆN 5

3.1 Phương pháp đề xuất 5

3.2 Cài đặt thử nghiệm 6

3.3 Thực nghiệm 6

CHƯƠNG 4: KẾT LUẬN 6

4.1 Kết luận 6

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

4.3 Kiến nghị, đề xuất 7

TÀI LIỆU THAM KHẢO 8

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ột

cơ 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 động vấ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ẻ sau khi 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òn hạn hẹp cũng như những yếu tố khách quan khác mà không trá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ức giú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 CHUNG

1.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ũi nhọn trong công cuộc phát triển kinh tế xã hội Cùng với công nghệ 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ệp hó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ắn trứ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ăng quan 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ột người chơi game này đến mức nghiện thì em muốn có thể phát triển game này Nhưng hiện tại kiến thức còn chưa đủ nên em chỉ 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ác dẫ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ến thứ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êm vào đó, chương trình game khi được thực hiện phải được chuẩn

bị 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ợp cá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ột cô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ũng gặ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 đến chương trình chạy không đúng ý người lập trình hoặc chạy sai chứ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ợp với mọi loại thiết bị và đảm bảo tính giải trí, đáp ứng nhu cầu củ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ập cũ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ên Bá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ững giờ học ở trường

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

2.1 Tổng quát

1 Thiết lập hình nền hay gọi là thế giới cho game

2 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 đe dọ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ới củ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ên tục màn hình

3 Class MainObject: Là class kế thừa của BaseObject chứa nhữ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ện

từ chuột để bắn đạn

4 Class ThreatsObject: Là class kế thừa của BaseObject chứa những hàm xử lí những vấn đề liên quan đến mối đe dọa: các mố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ứa những hàm xử lí vẫn đề liên quan đến đạn: đạn của nhân vật chí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ật chí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ật chí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àn thiệ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ẽ được update liên tục và cũng sẽ giải phóng bộ nhớ liền Và khi nhân vậ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ăng

2.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ản

xạ 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àng tố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ấn chuộ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ễn

ra càng lâu, độ khó sẽ ngày càng tăng Từ đó, điểm số người chơ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ất hiện “GameOver”

2.4 Đánh giá

Để tạo nên trò chơi này, chúng em đã sử dụng những kiến thức học được ở trên lớp và sự hỗ trợ của SDL cùng với những thư viện khác <vector> hay <string> để tạo ra những Class khác nhau đảm nhận từng chức năng cụ thể trong trò chơi Tuy nhiên, vì hạn chế về mặt kiến thức và chưa đủ nghiên cứu nên trò 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ỆN 3.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ột game với Gameplay đơn giản, mối đe dọa đơn giản và tên cho

nó 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ôn ngữ 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ọc trên lớp, sự hỗ trợ của giảng viên bộ môn và cùng tham khảo tài liệu trên mạng internet, từ đó viết được chương trình theo mục tiêu: Sử dụng thư viện SDL, một số hàm đơn giản sẵn có để phát triể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ệm

3.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ảng Windows

+ 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ơn rồ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ếp cậ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ủa mộ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 trong tươ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ài tậ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úng

em hiểu rõ hơn những kiến thức về lập trình C/C++ qua những bà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