1. Trang chủ
  2. » Công Nghệ Thông Tin

Ứng dụng C trong lập trình game

26 820 0

Đ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

Định dạng
Số trang 26
Dung lượng 4,73 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

I. Ngôn ngữ lập trình C II. Lập trình đồ họa với C III. Sprite IV. Phát hiện va chạm game bắn cung V. Phát âm thanh VI. Tạo Map VII. Vẽ Map Cuộn Map Kiểu dữ liệu cơ bản (giống với C) Có thêm kiểu bool, kích thước các kiểu dữ liệu được mở rộng thêm. Cấu trúc điều khiển (giống với C) Thêm vòng lặp foreach để duyệt mảng Xử lý ngoại lệ Thêm cơ chế bắt lỗi và xử lý lỗi Cấu trúc và lớp

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA ĐIỆN- ĐIỆN TỬ

NGÀNH KỸ THUẬT ĐIỆN – ĐIỆN TỬ

BÁO CÁO TỐT NGHIỆP

LẬP TRÌNH GAME

GVHD: Nguyễn Minh Chương

SVTH : Nguyễn Thanh Dâng

Đỗ Thanh Sơn Trương Quang Kim Hoàn

1

Trang 2

• VI Tạo Map

• VII Vẽ Map & Cuộn Map

NỘI DUNG THUYẾT TRÌNH

2

Trang 3

• Kiểu dữ liệu cơ bản (giống với C)

– Có thêm kiểu bool, kích thước các kiểu dữ liệu được mở rộng thêm.

• Cấu trúc điều khiển (giống với C)

– Thêm vòng lặp foreach để duyệt mảng

Trang 4

• Cho phép tạo các kiểu dữ liệu riêng của người dùng.

• Cấu trúc và lớp gần như giống nhau hoàn toàn

• Điểm khác biệt

– Cấu trúc là kiểu giá trị

– Lớp là kiểu tham chiếu.

Cấu trúc và Lớp

4

Trang 6

• C# sử dụng thư viện GDI+ (Graphical Device Interface) cho việc xử lý đồ họa

II Lập trình đồ họa với C#

Hình 1 Vai trò của GDI+ Hình 2 GDI+ namespace

6

Trang 7

Hệ tọa độ GDI+

Hình 3 Hệ tọa độ GDI+

7

Trang 8

• Alpha biểu diễn độ trong suốt của màu

– Giá trị 0 nghĩa là màu hoàn toàn trong suốt

– và ngược lại.

Màu sắc – Lớp Color

Hình 4 Các thành phần của màu sắc

8

Trang 9

Kết quả thử nghiệm các hàm đồ họa

9

Trang 10

• Sprite và những vật thể có thể di chuyển và tương tác trong game (người chơi, kẻ thù, …).

• Phân biệt nó với các đối tượng tĩnh, tức là những đối tượng cứng không tương tác hay thay đổi trong game

III SPRITE

Hình 5 Minh họa Sprite

10

Trang 11

• Dùng các phần mềm đồ họa cùng với các phần mềm chuyên dụng để tạo Sprite.

• Sử dụng công cụ Google tìm kiếm hình ảnh để tìm các ảnh tạo Sprite bằng từ khóa: “Sprite

Sheet”

• Trang web sau cung cấp các hình ảnh đồ họa cho việc lập trình Game:

http://www.reinerstilesets.de/2d-grafiken/2d-animals/

Ảnh tạo Sprite

11

Trang 12

• Thực chất ra, Sprite chỉ gồm các hình ảnh liên tiếp nhau của một chuyển động, được vẽ liên tiếp nhau.

• Mỗi một chuyển động cần khoảng 8÷10 ảnh

• Ảnh nên tách bỏ nền và lưu dưới dạng PNG

• Để dễ quản lý, mỗi Sprite chỉ sử dụng một ảnh, mỗi dòng của ảnh là các frame của một hành động

III SPRITE (tt)

12

Trang 13

while(!p_gameOver) {

Update_Game();

Application.DoEvents();

} Game_End();

Vòng lặp Game được đặt ở cuối sự kiện Form Load, khi đó tất cả dữ liệu đã được tải lên Form.

Vòng lặp “Game Loop”

13

Trang 14

• Do chương trình được viết là ứng dụng Windows Form, nếu trong chương trình chứa các vòng lặp vô tận (endless loop, or super loop) sẽ làm cho Form bị đứng.

• Phương thức Application.DoEvents() sẽ xử lý tất cả các sự kiện phát sinh do người dùng

hoặc chương trình khác tác động lên Form (xử

lý phím, chuột, vẽ lại màn hình,…)

Application.DoEvents()

14

Trang 15

Kết quả thử nghiệm Sprite

15

Trang 16

• Cần tạo một hình bao hình chữ nhật dựa trên

vị trí và kích thước của Sprite

• Dùng phương thức IntersectsWith() của lớp Rectangle để kiểm tra va chạm

IV PHÁT HIỆN VA CHẠM

Hình 6: Hai hình bao giao nhau => Có va chạm

16

Trang 17

Game bắn cung

17

Trang 18

• Sử dụng âm hệ thống

• Sử dụng lớp SoundPlayer trong namespace System.Media Chỉ phát được định dạng file wav

• Sử dụng Windows Media Player Phát được nhiều định dạng hơn

V PHÁT ÂM THANH

18

Trang 19

• Chúng ta đã tạo được một game đơn giản, với map chỉ đơn giản là một bức hình.

• Việc tạo map giống như chúng ta đang lợp gạch (tile) cho nền nhà Với mỗi viên gạch một hoa văn, khi ghép chúng lại với nhau sẽ tạo ra cái sàn nhà đẹp mắt

• Các viên gạch (tile) được lấy từ một thùng chứa (Palette) và lần lượt được đặt ra form

VI TẠO MAP

19

Trang 20

VI TẠO MAP (tt)

Palette Tile

20

Trang 21

• Lưu dưới dạng file ảnh

• Lưu dưới dạng file XML

– Số thứ tự của tile

– Tọa độ của tile trên Map

– Cho phép Sprite đi qua không (Collidable)

– Có phải cổng hay không và tọa độ cổng

– File Map mà cổng nhảy tới (*) Cần phải lưu file Palette chung với file Map

Lưu file MAP

21

Trang 22

VI VẼ MAP VÀ CUỘN MAP

Toàn bộ Map (4096x4096)

Màn hình hiển thị (800x600) (x,y)

22

Trang 23

VẼ MAP VÀ CUỘN MAP (tt)

(x,y) 23

Trang 24

VẼ MAP VÀ CUỘN MAP (tt)

Màn hình hiển thị

Bộ đệm 24

Trang 25

KẾT LUẬN

• Kết luận

Tạo được các game 2-D đơn giản

Thiết kế được các lớp trên C#

Tuy nhiên:

Vẫn chưa hoàn chỉnh, còn nhiều lỗi cần khắc phục

• Định hướng phát triển

Tạo các tay cầm chơi game.

Cải tiến công cụ tạo Map.

Thêm các giải thuật điều khiển cho các nhân vật

trong game.

25

Trang 26

 THE END!!!



#include<studio.h>

int main() {

while(IsLastPage(ThisPage)) {

printf(“Xin cảm ơn quí thầy cô

printf("\n");

} return 0;

}

26

Ngày đăng: 08/04/2015, 16:06

HÌNH ẢNH LIÊN QUAN

Hình 1. Vai trò của GDI+ Hình 2. GDI+ namespace - Ứng dụng C trong lập trình game
Hình 1. Vai trò của GDI+ Hình 2. GDI+ namespace (Trang 6)
Hình 3. Hệ tọa độ GDI+ - Ứng dụng C trong lập trình game
Hình 3. Hệ tọa độ GDI+ (Trang 7)
Hình 4. Các thành phần của màu sắc - Ứng dụng C trong lập trình game
Hình 4. Các thành phần của màu sắc (Trang 8)
Hình 6: Hai hình bao giao nhau =&gt; Có va chạm - Ứng dụng C trong lập trình game
Hình 6 Hai hình bao giao nhau =&gt; Có va chạm (Trang 16)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w