Báo cáo chuyên đề học phần đồ họa máy tính đề ti game flappy bird

19 5 0
Báo cáo chuyên đề học phần đồ họa máy tính đề ti game flappy bird

Đ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

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 ĐỒ HỌA MÁY TÍNH ĐỀ TI GAME FLAPPY BIRD Hà Nội, ngày 15 tháng 5 năm 2023 1 Sinh viên thực hiện GIANG ỨNG HÙNG PHẠM HẢI NAM 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 ĐỒ HỌA MÁY TÍNH ĐỀ TI: GAME FLAPPY BIRD Sinh viên thực : GIANG ỨNG HÙNG : PHẠM HẢI NAM : NGUYỄN ĐỨC HUY Giảng viên hướng dẫn : NGÔ NGỌC THNH   Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CƠNG NGHỆ PHẦN MỀM Lớp : D15CNPM3 Khóa : 2019-2023 Hà Nội, ngày 15 tháng năm 2023   PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: STT Họ tên Chữ ký Nhiệm vụ Giang Ứng Hùng 20810310343 Phạm Hải Nam 20810310333  Nguyễn Dức Huy 20810310308   Giảng viên chấm: Họ tên Chữ ký Ghi Giảng viên chấm 1: Giảng viên chấm 2:   MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG TÌM HIỂU VỀ ĐỒ HỌA MÁY TÍNH .5 1.1 Khái niệm .5 1.2 Lịch sử 1.3 Ứng dụng đồ họa máy tính thực tế CHƯƠNG GIỚI THIỆU VÀ HƯỚNG DẪN CÀI ĐẶT THƯ VIỆN GRAPHICS.H .10 2.1 Giới thiệu thư viện graphics.h 10 2.2 Cài đặt thư viện graphics.h 11 2.2.1 File cài đặt (kèm Dev C/C++ thư viện đồ họa) 11 2.2.2 Thêm thư viện đồ họa .11 2.2.3 Hướng dẫn sử dụng 12 2.2.4 Lỗi cài đặt sử dụng 13 CHƯƠNG GAME FLAPPY BIRD 14 3.1 Các bước cài đặt 14 3.2 Code chạy chương trình .14 3.3 Kết 17 KẾT LUẬN 18 TÀI LIỆU THAM KHẢO .19   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 phương pháp cơng nghệ dùng việc chuyển đổi qua lại liệu hình ảnh máy tính Đồ 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 Chúng em tiếp xúc với môn học đồ họa máy tính thầy Ngơ Ngọc Thành giảng dạy Với kiến thức em học hướng dẫn thầy chúng em thực đề tài “GAME FLAPPY BIRD” Trong trình thực nghiên cứu chúng em sử dụng thư viện đồ họa openGL sử dụng rộng rãi   Có lẽ chương trình báo cáo chúng em chưa chun nghiệp, hồn chỉnh nhất, cịn có thiếu xót cịn thiếu kiến thức kinh nghiệm Vì em mong thầy bạn góp ý để nhóm em xây dựng đề đạt kết tốt có thể.Em xin chân thành cảm ơn!!     CHƯƠNG TÌM HIỂU VỀ ĐỒ HỌA MÁY TÍNH 1.1 Khái niệm Đồ họa máy tính lĩnh vực khoa học máy tính nghiên cứu cơ  sở tố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 ) Theo nghĩa rộng hơn, đồ họa máy tính phương pháp cơng nghệ dùng việc chuyển đổi qua lại liệu hình ảnh hình máy tính Đồ họa máy tính hay kĩ thuật đồ họa máy tính cịn hiểu dạng  phương pháp kĩ thuật tạo hình ảnh từ mơ hình tốn học mô tả đối tượng hay liệu lấy từ đối tượng thực tế Thuật ngữ "đồ họa máy tính" (computer graphics) đề xuất chuyên gia người Mĩ tên William Fetter vào năm 1960 Khi ơng nghiên cứu xây dựng mơ hình buồng lái máy bay cho hãng Boeing William Fetter dựa hình ảnh chiều mơ hình người phi cơng buồng lái để xây dựng nên mơ hình buồng lái tối ưu cho máy bay Boeing Đây phương pháp nghiên cứu vào thời kì Phương pháp cho phép nhà thiết kế quan sát cách trực quan vị trí người lái khoang buồng lái William Fetter đặt tên cho phương pháp computer graphics Đồ họa máy tính cung cấp phương cách tự nhiên cho việc truyền đạt thông tin với máy tính Ngày nay, nhiều q trình thiết kế, cài đặt xây dựng, thông tin mà hình ảnh mang lại khơng thể thiếu Kĩ thuật trực quan (scientific visualization) trở nên lĩnh vực quan   trọng từ năm 1980, nhà nghiên cứu khoa học kĩ sư nhận họ xử lí lượng liệu khổng lồ phát sinh từ siêu máy tính mà liệu khơng tóm lược làm bật xu hướng tượng qua nhiều loại biểu diễn đồ họa khác Đồ họa máy tính tương tác phương tiện mang lại thêm nhiều thuận lợi cho người dùng việc phát sinh hình ảnh kể từ có phát minh máy ảnh truyền hình Với máy tính, tạo hình ảnh không đối tượng cụ thể, thực tế, mà đối tượng trừu tượng, nhân tạo; biểu diễn liệu mà khơng có tính kế thừa mặt hình học, kết điều tra, khảo sát Hơn nữa, với đồ họa máy tính khơng bị giới hạn ảnh tĩnh Các ảnh động thông thường mang lại nhiều hiệu so với ảnh tĩnh, đặc biệt với tượng biến đổi theo thời gian, thực tế (như đổi hướng cánh máy bay siêu âm, hay phát triển khuôn mặt người từ lúc trẻ thơ tới lúc già) trừu tượng (như xu hướng phát triển việc sử dụng lượng, gia tăng dân số, …) Có nhiều cách tiếp cận việc học môn đồ họa, trải rộng từ việc nghiên cứu phần cứng tới việc học để sử dụng đồ họa máy tính lĩnh vực chuyên biệt thiết kế mạch tích hợp cao (VLSI – very large scale integrated circuit) Ở tiếp cận từ góc độ người lập trình ứng dụng, người sử dụng tất hỗ trợ phần cứng, công cụ phần mềm để xây dựng nên ứng dụng Tuy nhiên để thiết kế cài đặt chương trình ứng dụng đồ họa tốt, ngồi việc tìm hiểu khả cơng cụ lập trình, cần  phải nắm vững khái niệm phần cứng; vấn đề, nguyên lí liên quan đến cài đặt phần mềm, thuật toán, ứng dụng, …   1.2 Lịch sử  Lịch sử đồ họa máy tính vào thập niên 1960 đánh dấu dự án SketchPad phát triển Học viện Công nghê Massachusetts (MIT) Ivan Sutherland Các thành tựu thu được báo cáo hội nghị Fall Joint Computer kiện lần người ta tạo mới, hiển thị thay đổi liệu hình ảnh trực tiếp hình máy tính thời gian thực Hệ thống Sketchpad dùng để thiết kế hệ thống mạch điện  bao gồm thành phần sau:  CRT hình  Bút sáng bàn phím bao gồm phím chức  Máy tính chứa chương trình xử lý thơng tin Với hệ thống này, người sử dụng vẽ trực tiếp sơ đồ mạch điện lên hình thơng qua bút sáng, chương trình phân tích tính tốn thơng số cần thiết mạch điện người dùng vẽ nên Kỹ thuật đồ họa liên tục hoàn thiện vào thập niên 1970 với xuất chuẩn đồ họa làm tăng cường khả giao tiếp tái sử dụng phần mềm thư viện đồ họa Sự phát triển vượt bậc công nghệ vi điện tử phần cứng máy tính vào thập niên 1980 làm xuất hàng loạt vỉ mạch hỗ trợ cho việc truy xuất đồ họa với giảm giá đáng kể máy tính cá nhân làm đồ họa ngày sâu vào sống thực tế 1.3 Ứng dụng đồ họa máy tính thực tế   Đồ họa máy tính có nhiều ứng dụng máy tính ước tính đến 80% thơng tin xử lý hình ảnh Một số ứng dụng tiêu biểu đồ họa máy tính là:  Tạo mơ hình, hoạt cảnh (game, giải trí, )  Hỗ trợ thiết kế đồ họa    Mô hình ảnh, chẩn đốn hình ảnh (trong y tế)  Huấn luyện đào tạo ảo (quân sự, hàng không, ) - Hỗ trợ thiết kế: Một ứng dụng lớn đồ họa máy tính hỗ trợ thiết kế (CAD – computer-aided design) Ngày CAD sử dụng hầu hết việc thiết kế cao ốc, ô tô, máy bay, tàu thủy, tàu vũ trụ, máy tính, trang trí mẫu vải, nhiều sản phẩm khác.Sử dụng chương trình này, đối tượng hiển thị dạng phác thảo phần khung (wireframe outline), mà từ thấy tồn hình dạng thành phần bên đối tượng Sử dụng kĩ thuật này, người thiết kế dễ dàng nhận thấy thay đổi đối tượng tiến hành hiệu chỉnh chi tiết hay thay đổi góc nhìn, … Một thiết kế xong phần khung đối tượng, mơ hình chiếu sáng, tơ màu tạo bóng bề mặt kết hợp để tạo kết cuối gần với giới thực - Biểu diễn thông tin: Đây ứng dụng sử dụng đồ họa máy tính để phát sinh biểu đồ, đồ thị, … dùng minh họa mối quan hệ nhiều đối tượng với Các ứng dụng thường dùng để tóm lược liệu tài chính, thống kê, kinh tế, khoa học, toán học, … giúp cho việc nghiên cứu, quản lí, … cách có hiệu - Lĩnh vực giải trí, nghệ thuật: Trong lĩnh vực nghệ thuật, chương trình máy tính Paint Shop Pro, Adobe Photoshop, 3D Studio, … hỗ trợ đắc lực cho họa sĩ, nhà tạo mẫu việc thiết kế hình ảnh sống động, thực Với chương trình này, người họa sĩ máy tính tạo cho cảm giác y làm việc đời thực  bằng cách cung cấp công cụ khung vẽ, giá vẽ, bảng pha màu, hiệu ứng  ba chiều, … làm cho họ cảm thấy thoải mái tiện lợi.Ngồi đồ họa máy tính cịn giúp tạo chương trình trị chơi, giải trí; hỗ trợ cho kĩ xảo điện   ảnh, cho nhà làm phim Có nhiều phim tiếng nhờ vào kĩ xảo điện ảnh : Công viên Khủng long kỉ Jura (Jurassic Park), Titanic, Thế giới nước (Water  World), … - Giao tiếp máy tính người dùng: Mọi ứng dụng phải có giao diện giao tiếp với người dùng Giao diện đồ họa thực cách mạng mang lại thuận tiện thoải mái cho người dùng ứng dụng Các ứng dụng dựa hệ điều hành MS Windows minh họa trực quan giao diện đồ họa Các chức ứng dụng thiết kế cho người dùng làm việc thông qua biểu tượng mơ tả chức Ví dụ, chức lưu tập tin hiểu thông qua biểu tượng đĩa mềm, chức in ấn hiểu thông qua biểu tượng máy in, … Để chọn chức năng, người dùng sử dụng chuột trỏ đến nhấn vào biểu tượng tương ứng Điểm thuận lợi dùng biểu tượng kích thước khơng gian mà chiếm nhiều so với dùng văn để mơ tả cho chức năng, ngồi việc nắm bắt chức qua biểu tượng dễ dàng nhiều người dùng gặp trở ngại mặt ngơn ngữ.Các ứng dụng có giao diện đồ họa cho phép người dùng khả làm việc dễ dàng với nhiều cửa sổ với nhiều dạng tài liệu khác lúc - Giáo dục đào tạo: Hiện chương trình mơ cấu trúc vật thể, tiến trình phản ứng hóa học, hoạt động gói tin mạng máy tính, … dùng nhiều việc hỗ trợ giảng dạy.Trong đào tạo, ứng dụng mơ dùng để kiểm tra trình độ người lái, huấn luyện phi công, điều khiển giao thông, … 10   CHƯƠNG GIỚI THIỆU V HƯỚNG DẪN CI ĐẶT THƯ VIỆN GRAPHICS.H 2.1 Giới thiệu thư viện graphics.h Graphics.h hay tên xác đầy đủ Borland Graphics Interface (BGI) thư viện đồ họa phổ biến DOS máy tính chạy hệ điều hành Windows thời kì đầu Windows 95, Windows 98 Thư viện cung cấp cho người dùng file: graphics.h graphics.lib để sử dụng với C/C++ module graph người dùng sử dụng ngôn ngữ Pascal Bộ thư viện kèm với IDE Borland C++ 3.1 (1992) Một điểm mạnh thư viện việc khởi tạo sử dụng đơn giản, dù đời lâu có nhiều trường đại học sử dụng cho mục đích giảng dạy 2.2 Cài đặt thư viện graphics.h Do thư viện đồ họa graphics winbgim khơng tích hợp sẵn thư viện phần mềm Dev C/ C++ nên ta phải tự thêm thư viện đồ họa muốn sử dụng để lập trình đồ họa 2.2.1 File cài đặt (kèm Dev C/C++ thư viện đồ họa) https://drive.google.com/file/d/1UK0316yZEZorN-MWCqxgIGBH79os6vvC/view 2.2.2 Thêm thư viện đồ họa Đường dẫn (Path);  Với Windows 32 bit: Path=”C:\Program Files\Dev-Cpp”  Với Windows 64 bit: Path=”C:\Program Files (x86)\Dev-Cpp” Hướng dẫn cài đặt:  Sau giải nén file gốc, ta cần làm theo bước sau: Đối với Dev C++ 32 bit: 11    Bước 1: Copy file “graphics.h” “winbgim.h” vào thư mục (Path)\ MinGV32\include”  Bước 2: Copy file “libbgi.a” vào thư mục “(Path)\MinGV32\lib”  Bước 3: Copy file “6-ConsoleAppGraphics.template” “ConsoleApp_cpp_graph.txt” vào thư mục “(Path)\Templates” Đối với Dev C++ 64 bit:  Bước 1: Copy file “graphics.h” “winbgim.h” vào thư mục “(Path)\ MinGW64\x86_64-w64-mingw32\include”  Bước 2: Copy file “libbgi.a” vào thư mục “(Path)\MinGW64\x86_64-w64mingw32\lib”  Bước 3: Copy file “6-ConsoleAppGraphics.template” “ConsoleApp_cpp_graph.txt” vào thư mục “(Path)\Templates” 2.2.3 Hướng dẫn sử dụng Sau cài đặt theo bước hướng dẫn trên, bạn mở Dev C++ lên Bước 1: Nếu bạn cài Dev C++ 32 bit bỏ qua bước này, cịn 64 bit bạn chọn trình biên dịch TDM-GCC 32 bit ứng với phiên Dev C++  bạn cài đặt (Đây bước bắt buộc phải làm từ đầu, khơng khơng chạy đồ họa) Ví dụ: Nếu Dev C++ 5.9.2 64 bit bạn chọn trình biên dịch “TDM-GCC 4.8.1 32 bit Release” 12   Bước 2: Tạo Project cách chọn File -> New -> Project…  Chọn Console Graphics Application  Tick vào ô C++ Project  Gõ tên Project vào ô Name  Click Ok chọn vị trí lưu Bước 3: Tiến hành lập trình đồ họa chạy thử 2.2.4 Lỗi cài đặt sử dụng - Lỗi Access is denied : bạn cấu hình lại devc++ phân quyền cho thư mục (admin) - Lỗi Makefile.win : bạn chưa đặt compiler tdm gcc 32bit 13   CHƯƠNG 3. GAME FLAPPY BIRD 3.1 Các bước cài đặt Bước 1: Khai báo thư viện cần thiết thư viện đồ họa graphics.h Bước 2: Khởi tạo biến cần sử dụng Bước 3: Viết hàm vẽ cột vẽ chim (bao gồm vẽ cánh chim, đuôi chim, chân chim) Bước 4: Viết hàm main 3.2 Code chạy chương trình #include #include #include #include #include using namespace std ; int main() {   int gd = DETECT, gm;   initgraph(&gd, &gm, "");   int x = 100, y = 100; // Toa chim   int pipeX = 400; // Vi tri dau tien cua cot   int pipeY = 0; // Chieu cao cot   int pipeGap = 150; // Khoang cách giua cot duoi   int pipeWidth = 50; // Chieu rong cot   int pipeSpeed = 20; // Toc di chuyen cua cot   int score = 0; // Ðiem so   bool isGameOver = false; // Trang thai ket thuc game   setbkcolor(CYAN);   char scoreStr[50];               while (true) { // Vòng lap while de reset game nguoi dung bam phim bat ki //Thiet lap thong so ban dau x = 100; y = 100; pipeX = 400; pipeY = 0; score = 0; 14     isGameOver = false;   while (!isGameOver) { // Vòng l ?p bên d? ch?y trò choi cleardevice();               getmaxy()); // Ve cot setcolor(GREEN); rectangle(pipeX, 0, pipeX + pipeWidth, pipeY); rectangle(pipeX, pipeY + pipeGap, pipeX + pipeWidth, getmaxy()); setfillstyle(SOLID_FILL, LIGHTGREEN); bar(pipeX + 1, 0, pipeX + pipeWidth - 1, pipeY - 1); bar(pipeX + 1, pipeY + pipeGap + 1, pipeX + pipeWidth - 1,               // Di chuyen cac cot pipeX -= pipeSpeed; if (pipeX + pipeWidth < 0) { pipeX = getmaxx(); pipeY = rand() % (getmaxy() - pipeGap); score++; }     //   màu                   len             // Ve va di chuyen chim setcolor(BLACK); // Ðat màu vien ben ngoai cho chim ellipse(x, y, 0, 360, 30, 15); // Ve thân chim bang hinh elipse setfillstyle(SOLID_FILL, LIGHTGRAY); // To mau cho thân chim kieu to   // Kiem tra va cham voi cot fillellipse(x, y, 30, 15); // Tô màu cho thân chim line(x , y, x - 10, y - 10); // Line de lam canh chim line(x , y, x , y-10); // Line de lam canh chim line(x , y, x - 10, y +10); // Line de lam canh chim line(x + 50, y, x + 30, y); // Mo chim line(x + 50, y, x + 7, y - 15); // Mo chim line(x, y + 15, x + 20, y + 25); // Chân chim arc(x - 30, y -10, 0, 100, 9); // Ðuôi chim if (kbhit()) { // Hàm if neu nguoi choi nhan phim cách chim se bay char c = getch(); if (c == ' ') { y -= 50; } } y += 10; //Neu khong nhan chim se tu tu xuong 15     if (y + 20 > getmaxy() || y - 20 < 0) { // N?u chim ch?m vào canh chua cot   isGameOver = true;   }   if (x + 20 > pipeX && x - 20 < pipeX + pipeWidth) { // N ?u chim cham vào c?t   if (y - 20 < pipeY || y + 20 > pipeY + pipeGap) {   isGameOver = true;   }   }             // Hien thi diem so settextstyle(DEFAULT_FONT, HORIZ_DIR, 2); sprintf(scoreStr, "Score: %d", score); outtextxy(10, 10, scoreStr); delay(50); }   // Hien thi ket qua len man hinh   cleardevice();   settextstyle(BOLD_FONT, HORIZ_DIR, 4);   setcolor(RED);   outtextxy(getmaxx() / 2 - 100, getmaxy() / 2 - 50, "Game over!");   setcolor(BLACK);   settextstyle(GOTHIC_FONT, HORIZ_DIR, 1);   sprintf(scoreStr, "Score: %d", score);   outtextxy(getmaxx() / 2 - 70, getmaxy() / 2 + 50, scoreStr);   settextstyle(SMALL_FONT, HORIZ_DIR, 6);   outtextxy(getmaxx() / 2 - 120, getmaxy() / 2 + 100, "Press any key to play again.");   getch(); } closegraph(); return 0; } 16   3.3 Kết 17   KẾT LUẬN 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 trỉnh nhất, đẹp Trong q 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ịan thành sản phẩm cách hoàn chỉnh Và qua việc thực nghiên cứu đề tài “GAME FLAPPY BIRD” Nhóm chúng em biết thêm nhiều môn đồ họa máy tính Đặc biệt hiểu rõ thư viện đồ họa graphics.h Bên cạnh đó, việc làm nghiên cứu giúp chúng em đoàn kết hơn, rèn luyện cho chúng em kỹ làm việc nhóm Chúng em xin chân thành cảm ơn thầy Ngơ Ngọc Thành tận tình giảng dạy chúng em mơn Đồ họa máy tính Giúp đỡ chúng em trình nghiên cứu đề tài Chia sẻ tài liệu hay thư viện graphics.h kĩ lập trình để chúng em hồn thành tốt báo cáo 18   TI LIỆU THAM KHẢO Hướng dẫn cài đặt thêm thư viện đồ họa vào Dev C/C++ - IT DESIGN (thaynhuom.edu.vn) [C/C++] Đồ họa Dev-C++ - Cách Học (cachhoc.net) 19

Ngày đăng: 17/05/2023, 18:47

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan