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