TRƯỜNG ĐẠI HỌC SƯ PHẠM ĐÀ NẴNG Nguyễn Thị Tiên Nguyễn Thúy Hằng BÁO CÁO ĐỒ HỌA MÁY TÍNH LẬP TRÌNH GAME ĐỀ TÀI: PHÁT TRIỂN CHƯƠNG TRÌNH GAME BÓNG ĐÀ NẴNG, 2024KHOA TIN HỌC... Xuất phá
TỔNG QUAN LÝ THUYẾT VÀ Ý TƯỞNG CHƯƠNG TRÌNH
Tổng quan lý thuyết
Đồ họa máy tính là lĩnh vực trong khoa học máy tính, tập trung vào nghiên cứu các cơ sở toán học, thuật toán và kỹ thuật nhằm tạo ra, hiển thị và điều khiển hình ảnh trên màn hình máy tính.
OpenGL (Open Graphics Library) là một thư viện lập trình đồ họa 3D, đóng vai trò là tiêu chuẩn kỹ thuật cho giao diện lập trình ứng dụng đồ họa ba chiều Ngoài việc hỗ trợ đồ họa 3D, OpenGL cũng có khả năng xử lý các ứng dụng đồ họa 2D Giao diện này bao gồm khoảng 250 hàm, cho phép người dùng tạo ra các cảnh phức tạp từ những hàm đơn giản OpenGL được sử dụng rộng rãi trong các lĩnh vực như CAD và thực tế ảo, và là đối thủ cạnh tranh với DirectX của Microsoft.
1.1.2 Một số kỹ thuật liên quan tới đối tượng
Biến đổi mô hình là kỹ thuật xác định vị trí và hướng của đối tượng trong không gian, từ đó tạo ra mô hình đồ họa theo ý muốn Quá trình này chuyển đổi từ điểm trong không gian thực tế đến pixel trên màn hình Để thực hiện chế độ biến đổi mô hình, sử dụng lệnh glMatrixMode (GL_MODELVIEW).
- Cú pháp các hàm biến đổi cơ bản:
Tên Câu lệnh Ví dụ
Phép tịnh tiến glTranslatef(GLfloat x,
Phép quay glRotatef(GLfloat angle,
Phép co dãn glScalef(GLfloat x,
Tương tác hoạt cảnh: Là kỹ thuật mô tả quá trình dịch chuyển của đối tượng đồ họa.
Người dùng có thể tương tác với các đối tượng trong chương trình thông qua các thiết bị ngoại vi như chuột và bàn phím, cho phép thực hiện các thao tác một cách linh hoạt và hiệu quả.
The function `void specialKeysBall(int key, int x, int y)` handles keyboard events for player movement in a game It uses a switch statement to respond to specific keys: pressing the left arrow key decreases the player's X position, while pressing the right arrow key increases it, ensuring the player remains within the bounds of -0.8f and 0.8f, respectively Additionally, the up arrow key is programmed to advance the player to the next level if the game is not over and the countdown timer has expired.
Ngăn xếp ma trận là một kỹ thuật kết hợp biến đổi điểm nhìn và biến đổi mô hình, nhằm xây dựng các mô hình phân cấp cho các đối tượng phức tạp từ các mô hình đơn giản.
Các lệnh glPushMatrix() và glPopMatrix() trong OpenGL được sử dụng để quản lý ngăn xếp ma trận hiện tại
glPushMatrix() sao chép ma trận hàng đầu và đẩy nó lên ngăn xếp, giúp bạn lưu trạng thái hiện tại của ma trận.
glPopMatrix() lấy ma trận hàng đầu ra khỏi ngăn xếp, phục hồi lại ma trận trước đó.
Ý tưởng thực hiện của chương trình
Đề tài: “Phát triển chương trình game bóng”.
Ý tưởng: Từ những mô hình hình ảnh thực tế từ những game đã có và sự hộ trợ của OpenGL ta tiến hành:
Bước 1: Cần lựa chọn các mô hình mà đồ họa đã hỗ trợ sẵn để tiến hành xử lý tạo được đối tượng mô hình.
Bước 2: Sử dụng các phép dịch chuyển xoay tịnh tiến sao cho mô hình động
Bước 3: Áp dụng ngăn xếp ma trận kết hợp các phép dịch chuyển xoay và tịnh tiến để hình thành mô hình động cùng với các khối liên kết, từ đó tạo ra đối tượng mong muốn.
Bước 4: Thực hiện các thao tác sự kiện từ người dùng bằng cách áp dụng các kỹ thuật bắt sự kiện liên quan đến chuột và bàn phím, nhằm tương tác hiệu quả với đối tượng.
PHÂN TÍCH CẤU TRÚC THUẬT TOÁN
Menu hệ thống
Câu lệnh void keyPressed(unsigned char key, int, int)
{ menuSelection = (menuSelection == 1) ? 3 : menuSelection - 1; } else if (key == 's' || key == 'S')
{ menuSelection = (menuSelection == 3) ? 1 : menuSelection + 1; } else if (key == 13)
{ std::cout