Xuất xứ hộp 2D


8

Tôi đang cố gắng thiết lập nguồn gốc của hình dạng box2d. Theo mặc định, một hình dạng xoay quanh trung tâm. Nhưng tôi đang cố làm cho nó xoay quanh bên trái của hình. Giống như một chiếc đồng hồ chẳng hạn.

Tôi đã nghe nói về những thứ như SetXForm nhưng chức năng đó dường như không tồn tại. Tôi đang sử dụng C ++ trong trường hợp bạn cần biết điều đó.

Cảm ơn trong nâng cao, bất kỳ trợ giúp được đánh giá cao.

2d  physics  box2d 

Câu trả lời:


6

Có hai loại hình dạng và ba cách để tạo chúng trong Box2D.

Một b2CircleShape luôn có tâm của nó ở trung tâm của vòng tròn. Nếu bạn muốn tạo một "vòng tròn bị lệch", bạn phải cố định vòng tròn sang một đối tượng khác (ví dụ: một vòng tròn nhỏ bên trong nó) bằng một khớp.

Một b2PolygonShape có thể được khởi tạo với SetAsBox. SetAsBox theo mặc định đặt gốc tọa độ ở giữa hình chữ nhật, nhưng bạn có thể truyền b2Vec2 làm đối số thứ ba để đặt gốc tọa độ ở nơi khác.

Một b2PolygonShape không phải hộp được khởi tạo với gốc tọa độ tại tọa độ cục bộ 0,0. Để tạo một hình dạng chỉ mở rộng một hướng, ví dụ: phải và lên, chỉ cần chỉ định các tọa độ như (0, 0), (0, 5), (5, 5), (5, 0), chỉ xây dựng hình dạng dọc theo tọa độ cục bộ di chuyển lên và sang phải (và theo thứ tự cuộn dây CCW).

Hãy nhớ rằng, nguồn gốc của hình dạng luôn là tọa độ cục bộ (0, 0). Nếu bạn cố gắng nghĩ về nó như là "di chuyển nguồn gốc", bạn sẽ tự làm mình bối rối - những gì bạn đang làm là bù đắp cho các đỉnh khác so với điểm gốc.


2

Không sao, tôi bỏ qua câu trả lời. Rõ ràng trong b2PolygonShape, khi bạn gọi hàm

SetAsBox ()

Có 2 quá tải. Và một trong số đó là:

SetAsBox (nửa băng thông, nửa sáng, trung tâm, góc);

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.