22:55 06/06/2023 Documents Downloader LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô trường Đại học Điện lực, đặc biệt là các thầy cô khoa Công ngh
Trang 1TRƯỜ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 MÔN ĐỒ HỌA MÁY TÍNH
ĐỀ TÀI:
XÂY DỰNG GAME PHÁ GẠCH
Sinh viên thực hiện : NGUYỄN HỮU MINH
DƯƠNG
ĐỖ THỊ MAI HƯƠNG TRỊNH ANH QUÂN Giảng viên hướng dẫn : NGÔ QUỐC TẠO Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Khóa : 2019 -2024
Trang 222:55 06/06/2023 Documents Downloader
Trang 3Hà Nội, tháng 3 năm 2022 PHIẾU CHẤM ĐIỂM STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký 1
Nguyễn Hữu Minh Dương
2
Đỗ Thị Mai Hương
3
Trịnh Anh Quân
Họ và tên giảng viên Chữ ký Ghi chú Giảng viên chấm 1:
Giảng viên chấm 2:
Trang 422:55 06/06/2023 Documents Downloader
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
LỜI MỞ ĐẦU 2
CHƯƠNG I: TỔNG QUAN 3
1.1.Lý do chọn đề tài 3
1.2.Mô tả đề tài 3
1.3.Đặt vấn đề 3
1.4.Cấu trúc báo cáo 3
CHƯƠNG II: PHÂN TÍCH YÊU CẦU 4
2.1.SFML là gì 4
2.2.Cách thêm thư viện SFML trên Visual Studio 5
2.3.Tổng quan về game 7
2.4.Yêu cầu chức năng 7
2.5.Yêu cầu phi chức năng 7
CHƯƠNG III: THIẾT KẾ ỨNG DỤNG 8
3.1.Cài đặt thuật toán 8
3.2 Kết quả thực nghiệm 11
KẾT LUẬN 12
Trang 622:55 06/06/2023 Documents Downloader
LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô trường Đại học Điện lực, đặc biệt là các thầy cô khoa Công nghệ thông tin của trường đã tạo điều kiện thuận lợi cho em thực hiện bản báo cáo
Đặc biệt em xin gửi đến thầy Ngô Quốc Tạo – người đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận
về môn học Trong thời gian được học tập và thực hành dưới sự hướng dẫn của thầy, em không những thu được rất nhiều kiến thức bổ ích, mà còn được truyền sự say mê và thích thú đối với bộ môn Đồ họa máy tính
Mặc dù đã rất cố gắng hoàn thiện báo cáo, tuy nhiên, do bước đầu đi vào thực
tế, tìm hiểu và xây dựng báo cáo trong thời gian có hạn và kiến thức còn hạn chế, nên báo cáo “Xây dựng game phá gạch” chắc chắn sẽ không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự quan tâm, thông cảm và những đóng góp quý báu của các thầy cô và các bạn để báo cáo này được hoàn thiện hơn
Em xin chân thành cảm ơn!
1
Trang 7LỜI MỞ ĐẦU Như chúng ta đã thấy trong những năm gần đây sự phát triển vượt bậc về công nghệ đồ họa đã mang lại cho con người chúng ta vô vàn sự tiện nghi, những trải nghiệm mới mẻ, chân thực
Đồ họa máy tính góp phần quan trọng làm cho giao tiếp của con người và máy tính trở nên thân thiện gần gũi hơn.Trong lĩnh vực kỹ thuật máy tính, đồ họa máy tính càng ngày càng phát triển mạnh mẽ Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về ở toán học, các thuật toán cũng như các kĩ thuật
để cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa hình, quang học, và kĩ thuật máy tính, đặc biệt là chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các vỉ mạch đồ họa )
Là sinh viên khoa Công Nghệ Thông Tin trường Đại học Điện Lực Em cũng được tiếp xúc với môn học đồ họa máy tính Với những kiến thức em đã được học và được sự hướng dẫn của thầy Ngô Quốc Tạo em đã thực hiện đề tài “Xây dựng game Phá gạch” Trong quá trình thực hiện nghiên cứu, chúng em đã sử dụng thư viện đồ họa SFML đang được sử dụng rộng rãi hiện nay
2
Trang 822:55 06/06/2023 Documents Downloader
CHƯƠNG I: TỔNG QUAN 1.1.Lý do chọn đề tài
Với những bạn mới bắt đầu học lập trình căn bản với C/C++ lên và bắt đầu tiếp xúc với một engine game lớn và đồ sộ như Cocos 2Dx, Unity thì rất là khó và khá là mất thời gian vì các bạn không hiểu bản chất bên trong engine đó được viết như thế nào từ load hình ảnh lên game, sử dụng cái gì để vẽ, hiện thực FPS
Thì đối với thư viện SFML là một thư viện cung cấp cho chúng ta một số các chức năng cơ bản như vẽ các hình học lên cửa sổ, xử lý event input output, play audio và đặc biệt là thư viện này được viết bằng C/C++ và build trên nhiều nèn tảng khác nhau nên rất linh động nên dây là một thư viện cực kì bổ ích cho các bạn nào muốn xây dựng một engine game của chính mình
1.2.Mô tả đề tài Nhằm hiểu r hơn về tổng quan cũng như môi trường thư viện SFML Từ đó phân tích sự ảnh hưởng trong ngôn ngữ lập trình, giúp nắm bắt một cách chi tiết,
cụ thể hơn về thư viện Từ đó, có thể đánh giá và phân tích, xây dựng game qua thư viện SFML này
1.3.Đặt vấn đề Đối tượng nghiên cứu: Nghiên cứu và tìm hiểu sử dụng qua thư viện SFML
để hiểu r các vấn đề hỗ trợ về đồ họa
1.4.Cấu trúc báo cáo -Chương 1: Tổng quan -Chương 2: Phân tích yêu cầu -Chương 3: Thiết kế ứng dụng
3
Trang 9CHƯƠNG II: PHÂN TÍCH YÊU CẦU 2.1.SFML là gì
SFML (là viết tắt của Simple and Fast Multimedia Library) là một API di động và dễ sử dụng để lập trình đa phương tiện Nó được viết bằng C ++ với các ràng buộc có sẵn cho C, D, Python, Ruby, OCaml, Net và Go Nó có thể được coi
là một thay thế hướng đối tượng cho SDL SFML khá giống với SDL2 nhưng do viết theo hướng OOP nên việc lập trình sẽ dễ dàng hơn nhiều so với SDL2
SFML cung cấp đồ họa 2D được tăng tốc phần cứng bằng OpenGL, hỗ trợ cửa sổ OpenGL và cung cấp các mô-đun khác nhau giúp dễ dàng lập trình đa phương tiện và trò chơi
Nó cung cấp một giao diện đơn giản với các thành phần khác nhau cho máy tính của bạn, để giảm bớt sự phát triển của trò chơi và các ứng dụng đa phương tiện Nó bao gồm 5 modules (Audio, Graphics, Network, System, Window):
+ System: gồm các class liên quan với hệ thống như làm thời gian, xử lí unicode
+ Window: liên quan tới việc tạo, đóng và xử lí sự kiện cửa số
+ Graphics: bao gồm các class về việc render đồ họa
+ Audio: bao gồm các class về xử lí âm thanh, ta có thể dùng để phát một file nhạc hoặc ghi âm cho máy tính và lưu thành file
+ Network: mạng Trang web SFML cung cấp gói SDK hoàn chỉnh trong một gói và hướng dẫn
để giảm bớt các nhà phát triển Mã nguồn SFML được cung cấp theo các điều khoản của giấy phép zlib / png
Ngoài ra, SFML có thể chạy trên nhiều hệ điều hành khác nhau như Windows, Linux, MacOS Tuy nhiên thì hiện tại, vẫn chưa có thể chạy trên Android với IOS
4
Trang 1022:55 06/06/2023 Documents Downloader
2.2.Cách thêm thư viện SFML trên Visual Studio Bước 1: Cài đặt Visual Studio:
- Nếu chưa cài đặt Visual Studio trên máy tính chúng ta thực hiện 2 bước sau:
+ Tải tập tin cài đặt VS C++ từ:
http://www.microsoft.com/express/Downloads/
+ Thực thi tập tin cài đặt và làm theo hướng dẫn để cài VS
Bước 2: Tải bản pre-built SFML:
- Vào trang chủ của SFML tại link:https://www.sfml-dev.org/
- Tại trang chủ chọn Download rồi chọn SFML 2.5.1
- Tại đây, ta sẽ thấy các bản pre-built cho các phiên bản của Visual Studio
Các bản này phân ra làm 2 loại: 32bit và 64bit Nếu ta chọn bản 32bit thì khi build
ra chương trình có thể chạy trên cả windows 32bit và 64bit Còn nếu ta cài đặt bản 64bit thì khi build ra chương trình chỉ chạy được trên windows 64bit Vì vậy, ta nên chọn phiên bản cài đặt phù hợp với nhu cầu và mục đích sử dụng Ở đây, nhóm em sẽ tải bản cho VS 2017 32bit
Bước 3: Cài đặt SFML vào project
- Giải nén tập tin SFML-2.5.1.zip ra thư mục SFML-2.5.1
- Tạo project mới trên VS
- Cấu hình project:
+ Chọn chuột phải vào tên project sau đó chọn Property + Sau khi mở, tại khung Configuration chọn All Configuration rồi chọn đến mục C++ -> General -> Additional Include Directories -> Edit Tại đây, chọn đến thư mục include trong thư mục SFML đã tải về
+ Tiếp theo các bạn chọn đến mục Linker -> General -> Additional Library Directories -> Edit Tại đây, các bạn chọn đến thư mục lib trong thư mục SFML đã tải về
5
Trang 11+ Sau đó các bạn đến mục Linker > Input > Additional Dependencies
-> Edit Tại đây, g như sau:
sfml-network.lib sfml-window.lib sfml-system.lib sfml-graphics.lib sfml-audio.lib + Sau khi cài đặt xong ở All configuration, ta tiến hành cài đặt ở Debug + Tại khung Configuration chọn Debug rồi chọn đến mục C++ -> General -> Additional Include Directories -> Edit Tại đây, chọn đến thư mục include trong thư mục SFML đã tải về
+ Tiếp theo các bạn chọn đến mục Linker -> General -> Additional Library Directories -> Edit Tại đây, các bạn chọn đến thư mục lib trong thư mục SFML đã tải về
+ Sau đó các bạn đến mục Linker > Input > Additional Dependencies
-> Edit Tại đây, g như sau:
sfml-network-d.lib sfml-window-d.lib sfml-system-d.lib sfml-graphics-d.lib sfml-audio-d.lib + Vào thư mục bin của SFML để tìm các file dll bị thiếu (openal32.dll, sfml-audio-d-2.dll, sfml-graphics-d-2.dll, sfml-network-d-2.dll, sfml-system-d-2.dll, sfml-window-d-2.dll) và paste vào thư mục Debug của project
+ Cuối cùng nháy OK để hoàn tất các quá trình
6
Trang 1222:55 06/06/2023 Documents Downloader
2.3.Tổng quan về game
- Phá gạch là một trò chơi điển tử arcade, có đồ họa hai chiều đơn giản Đây
là một trò chơi điều khiển bóng đòi hỏi người chơi sự khéo léo và tính toán tỉ mỉ
2.4.Yêu cầu chức năng
- Người chơi tiến hành bấm các nút phím mũi tên trên bàn phím để điều khiển thanh đỡ bóng
- Mỗi khi quả bóng chạm vào 1 khối gạch thì nó sẽ biến mất Và cứ thế khi không còn khối gạch nào thì sẽ qua màn
2.5.Yêu cầu phi chức năng
- Giao diện thân thiện, dễ sử dụng
- Cấu hình nhẹ, dễ cài đặt
7
Trang 13CHƯƠNG III: THIẾT KẾ ỨNG DỤNG 3.1.Cài đặt thuật toán
8
Trang 1422:55 06/06/2023 Documents Downloader
3.2 Kết quả thực nghiệm
9
Trang 15KẾT LUẬN Trong thời gian nghiên cứu và vận dụng những kiến thức đã được trang bị ở nhà trường và các lĩnh vực khác Chúng em đã viết được game pong nhằm mục đích giải trí lành mạnh Chúng em hy vọng rằng những khái niệm này là tiền đề giúp chúng em phát triển mạnh hơn về những thể loại game khác chất lượng hơn, hay hơn để phục vụ cho nhu torng cầu cuộc sống chúng ta
Trong quá trình thực hiên đề tài, chúng em đã nhận được sự giúp đỡ tận tình của thầy Ngô Quốc Tạo giúp chúng em hoàn thành tốt báo cáo này Vì thời gian làm báo cáo hạn hẹp, kinh nghiệm thực tế chưa nhiều nên báo cáo không tránh khỏi những sai sót, rất mong sự góp ý của thầy
Trong quá trình thực hiện đề tài có rất nhiều ý tưởng hay, độc đáo Nhưng do kiến thức của chúng em hạn hẹp và thời gian không cho phép nên chúng em chưa thể thực hiện được những ý tưởng đó Tuy nhiên chúng em đã cố gắng để xây dựng một chương trình hoàn chỉnh nhất, đẹp nhất Trong quá trình xây dựng chương trình, nhóm chúng em khó tránh khỏi những sai sót Vì vậy em rất mong rằng thầy
và các bạn cùng góp ý với nhóm em để có thể hòa thành sản phẩm một cách hoàn chỉnh nhất
10