Beginning c++ through game programming

  -  

Đang dịch, sẽ cố gắng 1,2 ngày/bài

*
Tác giả:Michael DawsonNgười dịch: hyutarsTrang chủ: http://vnsharing.vnn.bzMọi người có thể sử dụng nội dung của bài dịch này ở các nơi khác, nhưng xin yêu cấu ghi rõ nguồn.

Bạn đang xem: Beginning c++ through game programming

Chương 1: Kiểu, Biến, Chuẩn I/O và viết thử game căn bản: Lost Fortune

Bài 1.1 Giới thiệu C++:

C++ là một ngôn ngữ lập trình tiến tiến, mạnh trong các ngôn ngữ lập trình hiện nay, nó được sử dụng bởi hàng triệu lập trình viên trên thế giới. Nó là một trong những ngôn ngữ phổ biến để viết các ứng dụng máy tính – và ngôn ngữ thông dụng nhất để lập trình games.

Được sáng tạo bởi Bjarne Stroustrup, C++ là thế hệ sau của ngôn ngữ C. Thực tế, C++ giữ lại hầu hết các đặc điểm của C. Như thế nào đi nữa, C++ đem đến cho chúng ta những thuận lợi hơn trong việc lập trình.

Dùng C++ cho Games:

C++ là ngôn ngữ được các lập trình viên (games) lựa chọn. Hầu hết các games được giới thiệu hiện nay đều được viết bởi C++. Có nhiều lí do khác nhau để giải thích vì sao những người lập trình games sử dụng C++. Đây là một vài lí do:

Nó nhanh:Nếu bạn rành C++ thì bạn có thể lập trình nhanh như gió. Một trong những mục tiêu của C++ là khả năng thực thi. Và nếu bạn cần thêm các tính năng cho chương trình, C++ cho phép bạn dùng ngôn ngữ Assembly (Hợp ngữ) – Ngôn ngữ lập trình bậc thấp nhất – để liên lạc trực tiếp với phần cứng của máy tính.

Nó dễ điều khiển: C++ là một ngôn ngữ biến hóa, nó hỗ trợ các phong cách lập trình khác nhau, bao gồm lập trình hướng đối tượng. Không giống các ngôn ngữ khác, C++ không ép buộc lập trình viên phải đi theo một phong cách nào cả.

Nó được hỗ trợ nhiều: Vì nó là ngôn ngữ vượt trội các ngôn ngữ khác, có rất nhiều tài nguyên cho người lập trình bằng C++, bao gồm đồ họa API và 2D, 3D, vật lý, các thiết bị âm thanh – tất cả là một cái đòn bẩy cho phép lập trình viên tăng tốc độ lập trình games.

Tạo File thực thi: (.exe)

File mà bạn dùng để chạy chương trình – dù bạn đang nói đến game hay các ứng dụng windows – gọi là file thực thi (Executable File). Có rất nhiều bước để tạo một file thực thi từ mã nguồn của C++ (tập hợp các lệnh trong ngôn ngữ C++). Quá trình này được mô tả ở hình 1.1

*
Hình 1.1: Quá trình tạo file thực thi trong mã nguồn C++1.Đầu tiên, người lập trình dùng editor (trình soạn thảo) để viết mã nguồn C++, file đó thường có đuôi .cpp. Trình soạn thảo giống như bộ xử lý ngôn ngữ cho chương trình, nó cho phép lập trình viên tạo, chỉnh sửa, và lưu trữ mã nguồn.

2.Sau khi lập trình viên lưu lại mã nguồn, anh (chị) ta sẽ gọi compiler (trình biên dịch) – một ứng dụng có chức năng đọc mã nguồn và dịch nó sang file đối tượng (object file). Object files thường có đuôi mở rộng là .obj.

3.Tiếp theo, bộ phận kết nối (Linker) sẽ kết nối file object đến những file ngoài nếu cần thiết, sau đó tạo file thực thi (executable file), thường có đuôi mở rộng là .exe. Đến lúc này, người dùng có thể chạy chương trình bằng cách chạy file thực thi.

Lưu ý: Quá trình tôi miêu tả ở trên chỉ là một trường hợp đơn giản. Để tạo nên một ứng dụng phức tạp trong C++ thường liên quan đến rất nhiều file mã nguồn được viết bởi lập trình viên (hay một nhóm lập trình viên).

Để tự động hóa quá trình này, lập trình viên dùng một công cụ tổng hợp, đó là IDE (Integrated Development Environment – môi trường tương thích khai triển). IDE thường bao gồm editor, compiler, linker và một số công cụ khác. Phiên bản thương mại IDE cho Windows bao gồm Visual Studio.NET và C++ Builder Studio. Dev-C++ là một ngôn ngữ mà nguồn mở miễn phí cho Windows (hyutar: strong CD ROM kèm quyển sách gốc có cái Dev-C++, nhưng sách này là đồ lậu nên hổng có

*
, mọi người có thể tải cái này từ trên net về, hoặc dùng C++ 6.0 hay Visual C++ cũng được, mình nghĩ hầu hết mọi người đều có bản thương mại của C rồi).

Xem thêm: Bột Tartar Là Gì ? Công Dụng Và Cách Bảo Quản Cream Of Tartar

Xử lý lỗi: (error)

Khi tôi (tác giả) miêu tả quá trình tạo file thực thi từ mã nguồn C++, tôi đã bỏ qua một chi tiết nhỏ: lỗi. Nếu mắc lỗi là một chuyện bình thường của con người, thì lập trình viên chính là người thường xuyên mắc lỗi nhất. Ngay cả lập trình viên giỏi nhất đều có thể mắc lỗi ở lần thứ 1 (hoặc nhiều hơn) chạy chương trình. Lập trình viên phải sửa lỗi và chạy lại quá trình tạo file thực thi. Sau đây là một vài loại lỗi cơ bản bạn thường mắc phải khi chạy chương trình:

Lỗi biên dịch (Compile Errors): Nó xảy ra trong quá trình biên dịch. Kết quả, file object không được tạo ra. Lỗi này thường do lỗi cú pháp, có nghĩa là trình biên dịch không hiểu cái gì đó. Nó có thể đơn giản như gõ sai lệnh chẳng hạn, hay thiếu dấu “;”. Trình biên dịch còn đưa ra những cảnh báo (warning). Mặc dù bạn thường không cần phải chú ý đến warning, nhưng bạn nên giải quyết nó như là lỗi, sữa chửa, sau đó biên dịch lại, đây là một thói quen tốt đấy ^^.

Lỗi liên kết (Link Errors): Nó xảy ra trong quá trình kết nối và có thể cho biết có vài thứ mà chương trình liên kết đến không thể tìm thấy. Lỗi này thường được giải quyết bằng cách đặt đúng vị trí các liên kết và bắt đầu quá trình biên dịch/kết nối lần nữa.

Lỗi Run-time (Run-time errors): Nó xảy ra khi đang chạy file thực thi. Nếu chương trình làm một cái gì đó không hợp lý, nó có thể phá hủy hệ thống. Nhưng một dạng lỗi tinh vi, khó phát hiện hơn của lỗi run-time: logical error (lỗi logic), có thể làm chương trình làm những việc mà ta không định trước. Nếu bạn đã từng chơi game mà trong đó nhân vật có thể bước trên không khí (trong kịch bản nhân vật không thể bước trên không khí), khi đó bạn đã thấy lỗi logical trong hành động.

Trong thực tế: Như các nhà tạo phần mềm, công ty game thường gặp rắc rối với các sản phẩm bị lỗi. Biện pháp khắc phục của họ là trước khi đem ra ngoài thị trường, họ thuê những người chơi game thử (game testers). Những người này chơi games để sống, nhưng công việc của họ không thú vị như bạn tưởng đâu. Họ phải chơi đi chơi lại một phần nào đó của game – có thể lên đến hàng trăm – cố gắng tìm xem có lỗi nào không. Và với công việc buồn tẻ này, lương của họ cũng bèo nhèo. Nhưng trở thành game testers là một nấc thang để bạn có thể vào làm việc tại công ty làm games.

Hiểu chuẩn ISO:

Chuẩn ISO cho C++ là sự xác định rõ trong đó miêu tả chính xác ngôn ngữ hoạt động như thế nào. Nó cũng xác định các nhóm file, gọi là thư viên chuẩn, bao gồm các khối chức năng cho việc lập trình thông dụng, chẳng hạn như I/O – lấy thông tin từ lối vào và hiển thị ở lối ra. Thư viện chuẩn làm cuộc sống có vẻ dễ thở hơn đối với các lập trình viên, giúp họ không phải viết lại các khối code rối rắm (hyutars: theo mình hiểu thì nó giống như các macro, chẳng hạn trong một số hàm đếm bạn học sau này, chúng ta có thể thay một đoạn mã bằng một từ strlen duy nhất). Tôi sẽ dùng thư viện chuẩn trong tất cả các chương trình trong cuốn sách này.Trong cuốn sách này, tôi dùng Dev-C++. Trình biên dịch của Dev-C++ khá trung thành với chuẩn ISO, bạn có thể biên dịch, liên kết, và chạy tất cả chương trình dùng các trình biên dịch Windows. Tóm lại, bạn có thể biên dịch, liên kết, và chạy tất cả chương trình dưới bất kì hệ điều hành nào nếu bạn dùng ISO.

Lưu ý: Chuẩn ISO còn được gọi là chuẩn ANSI hay chuẩn ANSI/ISO. Tên đơn giản dễ hiểu nhất là Standard C++.Hyutars: Nếu bạn dùng các trình C++ khác ngoài Dev-C++ thì cứ yên tâm, nó cũng giống nhau cả thôi.

Bài 1.2 Viết chương trình C++ đầu tiên:

Okay, lí thuyết vậy là đủ rồi. Bây giờ là lúc đi đến thực chất của vấn đề và viết chương trình C++ đầu tiên của bạn. Mặc dù nó đơn giản, chương trình dưới đây sẽ chỉ cho bạn thấy cấu trúc căn bản của một chương trình. Nó còn cho bạn thấy chuỗi kí tự (text) được hiển thị trong cửa sổ console như thế nào (hyutars: Cửa sổ console là một cửa sổ giống DOS vậy).

Giới thiệu chương trình Game Over:

Hyutars: Nếu bạn đang dùng C++ 6.0, vào new->project, chọn Win32 Console Application, Empty Project sau đó chọn New->Source File, bạn sẽ viết mã trong source file này. Trong Visual C++ 2005 cũng tương tụ như vậy. Lưu ý phải add file vào đúng thư mục file trong thanh navigation.Chương trình đầu tiên mà lập trình viên được học thường là chương trình Hello World, nó sẽ hiển thị dòng “Hello World” trên màn hình. Chương trình Game Over cũng giống vậy thôi, chỉ khác là dòng text đổi thành Game Over!, hình 1.2 cho bạn thấy chương trình này đang hoạt động.

*
Hình 1.2 Chương trình C++ đầu tiên của bạn hiển thị hai chữ quen thuộc trong games.

Xem thêm: Tải Game Infinity Blade Miễn Phí Cho Ios, Tải Xuống Apk Infinity Blade 3 Cho Android

Bạn có thể tự viết chương trình này, tôi cũng hỗ trợ các mã nguồn trong CD-ROM kèm sách (hyutars: sách lậu thì hổng có đâu).