1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chuyên Đề học phần Đồ họa máy tính Đề t i mô tả trò chơi snake

29 0 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 đề Mô Tả Trò Chơi Snake
Tác giả Phạm Văn Công
Người hướng dẫn Ngô Ngọc Thịnh
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Chuyên Đề
Năm xuất bản 2013-2024
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 2,73 MB

Nội dung

Báo cáo này được thực hiện trong khuôn khổ môn học Đồ họa Máy Tính, với mục tiêu thiết kế và phát triển một phiên bản trò chơi rắn săn mồi, tích hợp các tính năng và cải tiến mới để nâng

Trang 1

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: Mô Tả Trò Chơi Snake

Sinh viên thực hiện : PHẠM VĂN CÔNG Giảng viên hướng dẫn : NGÔ NGỌC TH NH

Trang 2

PHIẾU CHẤM ĐIỂM Sinh viên thực hiện:

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU

Trang 4

Trong thời đại công nghệ số hiện nay, trò chơi điện tử đã trở thành một phần không thể thiếu trong đời sống giải trí và giáo dục Chúng không chỉ cung cấp những phút giây thư giãn mà còn thúc đẩy sự phát triển tư duy logic và kỹ năng giải quyết vấn đề Trong bối cảnh đó, trò chơi rắn săn mồi, một biểu tượng của thể loại trò chơi đơn giản nhưng đầy thử thách, đã giữ được sự phổ biến và sức hút của mình qua nhiều thập kỷ Trò chơi này không chỉ đơn thuần là một trò chơi giải trí mà còn là một công cụ học tập hữu ích trong việc phát triển các kỹ năng lập trình và thiết kế phần mềm Báo cáo này được thực hiện trong khuôn khổ môn học Đồ họa Máy Tính, với mục tiêu thiết kế và phát triển một phiên bản trò chơi rắn săn mồi, tích hợp các tính năng và cải tiến mới để nâng cao trải nghiệm người chơi Đề tài này không chỉ nhằm mục đích tạo ra một sản phẩm phần mềm hoàn chỉnh mà còn cung cấp cái nhìn sâu sắc về quy trình phát triển trò chơi, từ việc lên kế hoạch và thiết kế đến việc triển khai và đánh giá hiệu quả Trong phần mở đầu này, em sẽ trình bày tổng quan về trò chơi rắn săn mồi,nêu rõ lý do chọn đề tài và mục tiêu của dự án Trò chơi rắn săn mồi, với lối chơi đơn giản nhưng đầy thử thách, đã được lựa chọn vì tính khả thi và sự phổ biến của nó Em tin rằng việc phát triển một phiên bản hiện đại của trò chơi này không chỉ là cơ hội để nâng cao kỹ năng lập trình mà còn để hiểu sâu hơn về các khái niệm trong đồ họa máy tính và thiết kế trò chơi.

Mục tiêu chính của dự án là xây dựng một trò chơi rắn săn mồi có thể chạy trên nền tảng Dev-C++ với các tính năng bổ sung như nhiều chế độ chơi, bảng xếp hạng điểm số và hệ thống điều khiển linh hoạt Em sẽ sử dụng các công cụ và thư viện đồ họa để hiện thực hóa ý tưởng và mang đến cho người chơi một trải nghiệm thú vị và hấp dẫn

Báo cáo này sẽ chi tiết hóa từng bước trong quá trình phát triển, từ việc thiết kế cấu trúc trò chơi cho đến việc triển khai và đánh giá Em hy vọng rằng kết quả của dự án này sẽ không chỉ đáp ứng được yêu cầu của môn học mà còn góp phần tạo ra một sản phẩm chất lượng, có thể mang lại giá trị thực tiễn trong việchọc tập và giải trí

CHƯƠNG 1: GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH

Trang 5

1.1 Lịch sử phát triển

- Graphics những năm 1950-1960:

+ Năm 1959 Thiết bị đồ hoạ đầu tiên là màn hình xuất hiện tại Đức

+ Năm 1960 - SAGE (Semi-Automatic Ground Environment System) xuất hiệnbút sáng thao tác với màn hình

+ Năm 1960 William Fetter nhà khoa học người Mỹ, ông đang nghiên cứu xâydựng mô hình buồng lái máy bay cho hãng Boeing của Mỹ Ông đã dựa trênhình ảnh 3 chiều của mô hình ngườiphi công trong buồng lái của máy bay đểxây dựng nên một mô hình tối ưu cho buồng lái máy bay Phương pháp này chophép các nhà thiết kế quan sát một cách trực quan vị trí của người lái trongkhoang Ông đặt tên cho phương pháp này là đồ hoạ máy tính (ComputerGraphics)

+ Màn hình là thiết bị thông dụng nhất trong hệ đồ hoạ, các thao tác của hầu hếtcác màn hình đều dựa trên thiết kế ống tia âm cực CRT (Cathode ray tube) Khi

đó giá để làm tươi màn hình là rất cao, máy tính xử lý chậm, đắt và không chắcchắn (không đáng tin cậy)

- Graphics: 1960-1970

+ Năm 1963 Ivan Sutherland (hội nghị Fall Joint Computer - lần đầu tiên có khảnăng tạo mới, hiển thị và thay đổi được thực hiện trong thời gian thực trên mànCRT)

+ Hệ thống này được dùng để thiết kế mạch điện: CRT, LightPen (bút sáng),computer (chứa chương trình xử lý thông tin) Người sử dụng có thể vẽ mạchđiện trực tiếp lên màn hình thông qua bút sáng

- Graphics:1970-1980

+ Raster Graphics (đồ hoạ điểm) Bắt đầu chuẩn đồ hoạ ví dụ như:GKS(Graphics Kernel System): European effort (kết quả của châu âu),Becomes ISO 2D standard

- Graphics: 1980-1990

+ Mục đích đặc biệt về phần cứng, thiết bị hình học đồ hoạ Silicon Xuất hiệncác chuẩn công nghiệp: PHIGS (Programmers Hierarchical Interactive GraphicsStandard) xác định các phương pháp chuẩn cho các mô hình thời gian thực vàlập trình hướng đối tượng

+ Giao diện người máy Human-Computer Interface (HCI)

- Computer Graphics: 1990-2000

Trang 6

+ OpenGL API (Application Program Interface – giao diện chương trình ứngdụng).

+ Completely computer-sinh ra ngành điện ảnh phim truyện (Toy Story) rấtthành công Các tiềm tàng phần cứng mới: Texture mapping (dán các ảnh củacảnh thật lên bề mặt của đối tượng), blending (trộn màu)

- Computer Graphics: 2000- nay

+ Ảnh hiện thực, các cạc đồ hoạ cho máy tính (Graphics cards for PCs), gameboxes and game players

+ Công nghiệp phim ảnh nhờ vào đồ hoạ máy tính (Computer graphicsbecoming routine in movie industry): Maya (thế giới vật chất tri giác được)

1.2 Khái niệm đồ họa máy tính và các kỹ thuật đồ họa

1.2.1 Đồ họa máy tính là gì?

- Đồ họa máy tính là một ngành khoa học Tin học chuyên nghiên cứu về cácphương pháp và kỹ thuật để có thể mô tả và thao tác trên các đối tượng của thếgiới thực bằng máy tính

- Về bản chất: đó là một quá trình xây dựng và phát triển các công cụ trên cả hailĩnh vực phần cứng và phần mềm hổ trợ cho các lập trình viên thiết kế cácchương trình có khả năng đồ họa cao

- Với việc mô tả dữ liệu thông qua các hình ảnh và màu sắc đa dạng của nó, cácchương trình đồ họa thường thu hút người sử dụng bởi tính thân thiện, dể dùng, kích thích khả năng sáng tạo và nâng cao năng suất làm việc

1.2.2 Các kỹ thuật đồ họa

1.2.2.1 Kỹ thuật đồ họa điểm

- Các mô hình, hình ảnh của các đối tượng được hiển thị thông qua từng pixel(từng mẫu rời rạc)

- Đặc điểm: Có thể thay đổi thuộc tính

+ Xoá đi từng pixel của mô hình và hình ảnh các đối tượng

+ Các mô hình hình ảnh được hiển thị như một lưới điểm (grid) các pixel rờirạc,

+ Từng pixel đều có vị trí xác định, được hiển thị với một giá trị rời rạc (sốnguyên)

các thông số hiển thị (màu sắc hoặc độ sáng)

Trang 7

+ Tập hợp tất cả các pixel của grid cho chúng ta mô hình, hình ảnh đối tượng

chúng ta muốn hiển thị

- Phương pháp để tạo ra các pixel:

+ Phương pháp dùng phần mềm để vẽ trực tiếp từng pixel một

+ Dựa trên các lý thuyết mô phỏng (lý thuyết Fractal, v.v) để xây dựng nênhình ảnh mô phỏng của sự vật

+ Phương pháp rời rạc hoá (số hoá) hình ảnh thực của đối tượng

+ Có thể sửa đổi (image editing) hoặc xử lý (image processing) mảng các pixelthu được theo những phương pháp khác nhau để thu được hình ảnh đặc trưngcủa đối tượng

1.2.2.2 Kỹ thuật đồ họa Vector

- Xây dựng mô hình hình học cho hình ảnh đối tượng, xác định các thuộc tínhcủa mô hình hình học, sau đó dựa trên mô hình này để thực hiện quá trình tô trát

để hiển thị từng điểm của mô hình, hình ảnh của đối tượng

- Kỹ thuật này chỉ lưu trữ mô hình toán học của các thành phần trong mô hìnhhình học cùng với các thuộc tính tương ứng mà không cần lưu lại toàn bộ tất cảcác pixel của hình ảnh đối tượng

- So sánh giữa Đồ họa điểm và Đồ họa Vector:

- Hình ảnh và mô hình của các vật thể

được biểu diễn bởi tập hợp các điểm

của lưới (grid)

- Thay đổi thuộc tính của các pixel =>

thay đổi từng phần và từng vùng của

1.3 Phân loại của đồ họa máy tính

Trang 8

1.3.1 Phân loại theo các lĩnh vực của đồ họa máy tính

* Kỹ thuật đồ họa:

- Kiến tạo đồ họa gồm:

+ Các hệ CAD/CAM (Computer Aided Design/Computer Aided ManufactureSystem): kỹthuật đồ hoạ tập hợp các công cụ, các kỹ thuật trợ giúp cho thiết kếcác chi tiết và các hệ thống khác nhau: hệ thống cơ, hệ thống điện, hệ thốngđiện tử…

+ Đồ hoạ minh hoạ (Presentation Graphics): gồm các công cụ giúp hiển thị các

số liệu thí nghiệm một cách trực quan, dựa trên các mẫu đồ thị hoặc các thuậttoán có sẵn

+ Đồ hoạ hoạt hình và nghệ thuật: bao gồm các công cụ giúp cho các hoạ sĩ, cácnhà thiết kế phim hoạt hình chuyên nghiệp làm các kỹ xảo hoạt hình, vẽ tranh

Ví dụ: phần mềm 3D Studio, 3D Animation, 3D Studio Max

- Xử lý đồ họa gồm :

+ Kỹ thuật xử lý ảnh (Computer Imaging): sau quá trình xử lý ảnh cho ta ảnh sốcủa đối tượng Trong quá trình xử lý ảnh sử dụng rất nhiều các kỹ thuật phứctạp: kỹ thuật khôi phục ảnh, kỹ thuật làm nổi ảnh, kỹ thuật xác định biên ảnh.+ Kỹ thuật nhận dạng (Pattern Recognition): từ những ảnh mẫu có sẵn ta phânloại theo cấu trúc, hoặc theo các tiêu trí được xác định từ trước và bằng cácthuật toán chọn lọc để có thể phân tích hay tổng hợp ảnh đã cho thành một tậphợp các ảnh gốc, các ảnh gốc này được lưu trong một thư viện và căn cứ vàothư viện này ta xây dựng được các thuật giải phân tích và tổ hợp ảnh

+ Kỹ thuật tổng hợp ảnh (Image Synthesis): là lĩnh vực xây dựng mô hình vàhình ảnh của các vật thể dựa trên các đối tượng và mối quan hệ giữa chúng

1.3.2 Phân loại theo hệ tọa độ

- Kỹ thuật đồ họa:

+ Kỹ thuật đồ họa 2 chiều: là kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ haichiều (hệ toạ độ phẳng), sử dụng rất nhiều trong kỹ thuật xử lý bản đồ, đồ thị.+ Kỹ thuật đồ họa 3 chiều: : là kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ bachiều, đòi hỏi rất nhiều tính toán và phức tạp hơn nhiều so với kỹ thuật đồ hoạhai chiều

CHƯƠNG 2: GIẢI QUYẾT B I TOÁN

Trang 9

2.1 Phát biểu bài toán

- Sau khi được thầy cô hướng dẫn và tìm hiểu về OpenGL em đã quyết định

thực hiện với đề tài từ những kiến thức đã học

2.1.1 Liên hệ giữa môn học và dự án trò chơi snake

Dự án trò chơi rắn săn mồi áp dụng nhiều kiến thức và kỹ thuật được học trong môn học Đồ họa Máy tính, cụ thể như sau:

 Nguyên lý cơ bản của đồ họa máy tính:

o Sử dụng hệ tọa độ để xác định vị trí của rắn và mồi trên màn hình

o Áp dụng màu sắc để hiển thị rắn, mồi và nền

 Các thuật toán vẽ hình:

o Sử dụng thuật toán vẽ đường thẳng để tạo ra các đường biên và lưới cho bản đồ trò chơi

o Vẽ các hình chữ nhật hoặc hình vuông để biểu diễn rắn và mồi

 Biến đổi và chiếu hình:

o Áp dụng các biến đổi hình học để di chuyển và xoay rắn trong trò chơi

o Sử dụng phép chiếu để hiển thị các đối tượng 2D trên màn hình

 Hiệu ứng và xử lý hình ảnh:

o Áp dụng các hiệu ứng đơn giản như đổ bóng để tạo chiều sâu cho rắn và mồi

o Sử dụng ánh sáng và kết cấu để cải thiện giao diện người dùng

 Thư viện đồ họa và công cụ:

o Sử dụng các thư viện đồ họa như winbgim.h, conio.h để phát triển

và hiển thị trò chơi

o Sử dụng Dev-C++ để biên dịch và chạy chương trình

2.1.2 Mô tả trò chơi snake

Luật chơi:

 Bắt đầu trò chơi:

Trang 10

o Khi bắt đầu, người chơi sẽ điều khiển một con rắn với chiều dài ban đầu là một số ô nhất định.

 Điều khiển rắn:

o Người chơi sử dụng các phím mũi tên hoặc phím WASD để điều khiển rắn di chuyển lên, xuống, trái hoặc phải

 Ăn mồi:

o Mồi sẽ xuất hiện ngẫu nhiên trên bản đồ Khi rắn ăn mồi, rắn sẽ dài

ra và điểm số của người chơi sẽ tăng lên

 Kết thúc trò chơi:

o Trò chơi kết thúc khi rắn đụng vào tường hoặc đụng vào chính thânmình Khi đó, điểm số cuối cùng sẽ được hiển thị và người chơi có thể chọn chơi lại hoặc thoát khỏi trò chơi

o Di chuyển rắn đến vị trí của mồi để ăn mồi và tăng điểm số

o Mỗi lần ăn mồi, rắn sẽ dài thêm một đoạn

4 Kết thúc trò chơi:

o Nếu rắn va chạm vào tường hoặc thân mình, trò chơi sẽ kết thúc

o Điểm số cuối cùng sẽ được hiển thị và người chơi có thể chọn chơi

o lại hoặc thoát khỏi trò chơi

2.1.3 Các yếu tố chính trong trò chơi

1 Rắn (Snake):

Đầu rắn: Là phần đầu tiên của rắn, thường có màu sắc hoặc ký hiệu đặc

biệt để dễ phân biệt với thân rắn

Trang 11

Thân rắn: Bao gồm nhiều đoạn nối tiếp nhau Mỗi lần rắn ăn mồi, một

đoạn mới sẽ được thêm vào thân rắn

2 Mồi (Food):

Vị trí: Xuất hiện ngẫu nhiên trên bản đồ.

Hình dạng và màu sắc: Thường là một hình vuông hoặc hình tròn nhỏ

Hiển thị: Thường hiển thị ở góc trên của màn hình.

Tính điểm: Mỗi lần rắn ăn mồi, điểm số sẽ tăng lên Điểm số càng cao,

độ khó của trò chơi càng tăng

5 Tốc độ (Speed):

Tốc độ di chuyển: Rắn sẽ di chuyển với một tốc độ nhất định Tốc độ có

thể tăng lên mỗi khi rắn ăn mồi hoặc sau một khoảng thời gian nhất định

để tăng độ khó của trò chơi

6 Giao diện người dùng (User Interface):

Menu: Bao gồm các tùy chọn như bắt đầu trò chơi, xem điểm cao, hướng

dẫn cách chơi, và thoát

Thông báo: Hiển thị các thông báo khi trò chơi kết thúc hoặc khi người

chơi đạt được điểm số cao

2.2 Thiết kế tổng quan

2.2.1 Kiến trúc tổng quan:

 Main Loop: Vòng lặp chính của trò chơi, quản lý các cập nhật trạng thái

và vẽ hình

Trang 12

 Game State: Trạng thái của trò chơi, bao gồm vị trí của rắn, vị trí của mồi, điểm số, v.v.

 Input Handling: Xử lý các sự kiện nhập từ bàn phím để điều khiển rắn

 Rendering: Vẽ rắn, mồi và các thành phần khác lên màn hình

2.3 Cài đặt thuật toán

Hướng dẫn sử dụng: Tiến hành cài đặt thư viện Graphics cần thiết thực hiện:Bước 1: Nếu bạn cài Dev C++ 32bit thì bỏ qua bước này, còn nếu là 64bit thì các bạn chọn trình biên dịch là

TDM-GCC 32bit ứng với phiên bản Dev C++ bạn cài đặt (Đây là bước bắt buộc

và phải làm từ đầu, nếu không

thì sẽ không chạy được đồ họa)

Ví dụ: Nếu Dev C++ 5.6.3 64bit thì bạn sẽ chọn trình biên dịch là "TDM-GCC 4.8.1 32bit Release"

Bước 2: Tạo một Project mới bằng cách chọn File -> New -> Project + Chọn Console Graphics Application

+ Tick vào ô C++ Project

+ Gõ tên Project vào ô Name

Trang 13

2.3.2 Mã nguồn:

Dưới đây là hướng dẫn từng bước để cài đặt trò chơi rắn săn mồi

Bước 1: Cài đặt môi trường phát triển

1 Cài đặt Dev-C++:

o Tải và cài đặt Dev-C++ từ trang chủ hoặc nguồn tin cậy

o Sau khi cài đặt, mở Dev-C++ và cấu hình các thư viện đồ họa như winbgim.h, conio.h, libbgi.a, libconio.a vào các thư mục tương ứngcủa Dev-C++

Bước 2: Tạo cấu trúc dự án

1 Tạo thư mục dự án:

o Tạo một thư mục mới cho dự án, ví dụ: SnakeGame

2 Tạo thư mục con:

o Trong thư mục SnakeGame, tạo các thư mục con như sau

Trang 14

3 Nội dung các tệp tin:

 src/main.cpp:

 src/game.cpp:

Trang 15

 src/game.h:

Trang 16

 assets/sound/

Trang 17

Lưu các file âm thanh beep.wav, eatFood.wav, endGame.wav, faded.wav, start.wav.

 docs/report.docx:

Viết báo cáo mô tả trò chơi, cách thức thực hiện, các thuật toán được

sử dụng, và các bước triển khai

 README.md:

 Makefile (tùy chọn, nếu bạn muốn sử dụng Makefile để biên dịch):

2.4 Kết Quả

Trang 18

 Giao diện ban đầu của trò chơi snake:

Trang 19

 Màn hình chính của trò chơi snake:

Cách điều khiển con rắn:

 Người chơi sử dụng các phím mũi tên trên bàn phím để điều khiển hướng di chuyển của con rắn:

o Mũi tên lên (↑): Di chuyển lên

o Mũi tên xuống (↓): Di chuyển xuống

o Mũi tên trái (←): Di chuyển sang trái

o Mũi tên phải (→): Di chuyển sang phải

Trang 20

o Thêm các chướng ngại vật xuất hiện ngẫu nhiên trên bản đồ.

o Rắn phải tránh các chướng ngại vật này trong khi cố gắng ăn thức ăn

o Thức ăn có thể xuất hiện ở các vị trí khó tiếp cận hơn và có thể

di chuyển

o



Trang 21

 Tính năng pause của trò chơi snake:

Trang 22

 Kết thúc trò chơi:

Tương tác người dùng:

 Người chơi chỉ cần khởi động trò chơi và sử dụng các phím mũi tên để điều khiển rắn

 Trò chơi sẽ tự động theo dõi và cập nhật điểm số

 Khi trò chơi kết thúc, người chơi có thể nhấn phím bất kỳ để bắt đầu lại hoặc thoát trò chơi

Trang 23

Hiển thị điểm số và bảng xếp hạng:

Điểm số:

o Mỗi lần rắn ăn được thức ăn, điểm số của người chơi sẽ tăng lên

o Điểm số hiện tại sẽ được hiển thị ở góc trên của màn hình trò chơi

Bảng xếp hạng:

o Sau khi trò chơi kết thúc, điểm số của người chơi sẽ được so sánh với điểm số cao nhất (High Score) và lưu trữ nếu điểm số mới cao hơn

o Bảng xếp hạng sẽ hiển thị top các điểm số cao nhất từ trước đến nay, giúp người chơi có thể so sánh và cố gắng vượt qua kỷ lục cũ

Ngày đăng: 22/01/2025, 15:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN