Search…

Tích Hợp Thư Viện Vật Lý Box2D vào Project C++

01/10/20202 min read
Hướng dẫn cách tích hợp Engine Physics Box2D vào project C++ để mô phỏng vật lý cho game.

Trong quá trình phát triển game, viết lại các thư viện mô phỏng vật lý sao cho giống đời thực thực sự là việc không dễ dàng. Box2D là 1 Physics Engine mạnh mẽ giải quyết được những vấn đề trên. Tuy nhiên, việc tích hợp Box2D vào project C++ cũng khá khó khăn.

Tổng quan về Box2D

Box2D là 1 Physics Engine được sử dụng để mô phỏng vật lý trong game. Đây là thư viện mã nguồn mở được viết bằng C++, nhưng hiện tại đã được chuyển qua nhiều ngôn ngữ khác nhau như java, javascript, C#, python.

Trang chủ của Box2D: https://box2d.org/ 

Truy cập https://github.com/erincatto/box2d để tải source code của Box2D.

Hoặc download file Box2D.zip

Tích hợp Box2D vào project

Tạo project console C++ có tên là MyGame bằng cách mở Visual Studio 2013 vào File → New → Project. Chọn Empty Project, đặt tên là MyGame và nhấn OK để tạo Project.

Trong thư mục chứa file .sln của project MyGame, tạo 1 thư mục Lib để chứa thư viện Box2D.

Tiến hành download Box2D, giải nén file tải về sẽ có được folder Box2D-master. Copy thư mục Box2D vào vào thư mục Lib vừa mới tạo.

Chuột phải vào Solution chọn Add → Exsiting Project...

Tích hợp box2d vào project C++

Chọn đến file Lib\Box2D\Build\vs2013\Box2D.vcxproj để thêm project Box2D vào Solution.

Kết quả nếu add thành công.

Tích hợp box2d vào project C++

Chuột phải vào project Box2D và chọn Set as StartUp Project và tiến hành build project này để tạo ra file file thư viện liên kết tĩnh (file .lib).

Tích hợp box2d vào project C++

Như vậy là đã build được thư viện liên kết bây giờ chỉ vệc liên kết thư viện này với project MyGame.

Tiếp theo tiến hành thêm đường dẫn tới các file header và file thư viện của Box2D cho project MyGame.

Vào Properties của project MyGame để mở hộp thoại MyGame Property Pages. Vào mục C/C++, ở dòng Additional Include Directories thêm vào dòng như sau và nhấn OK.

Tích hợp box2d vào project C++

Vào Linker/General chọn dòng Additional Libraries Directories và thêm vào đường dẫn tới file .lib

Tích hợp box2d vào project C++

Trong mục Linker/Input chọn dòng Additional Dependencies và thêm vào dòng "Box2D.lib"

Tích hợp box2d vào project C++

Sử dụng Box2D

Vậy là đã tích hợp xong thư viện Box2D vào project C++. Khi cần sử dụng thư viện này chỉ include như sau:

#include <Box2D\Box2D.h>

Ví dụ khởi tạo world trong Box2D.

int main()
{
	b2Vec2 gravity(0.0f, -9.8f);
	b2World* world = new b2World(gravity);

	return 0;
}
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024