njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
Va chạm

Kiểm tra chồng nhau và đẩy ra giữa điểm, hình chữ nhật, hình tròn. Tiếp...

Classes

struct  njin::contact
 Kết quả của một phép va chạm có đẩy ra. Tiếp...

Các hàm

constexpr bool njin::point_in_rect (vec2 p, rect r)
 Điểm có nằm trong hình chữ nhật không.
constexpr bool njin::point_in_circle (vec2 p, circle c)
 Điểm có nằm trong hình tròn không.
constexpr bool njin::rects_overlap (rect a, rect b)
 Hai hình chữ nhật có chồng nhau không.
constexpr bool njin::circles_overlap (circle a, circle b)
 Hai hình tròn có chồng nhau không.
constexpr vec2 njin::closest_point (rect r, vec2 p)
 Điểm trong r gần p nhất.
constexpr bool njin::circle_rect_overlap (circle c, rect r)
 Hình tròn và hình chữ nhật có chồng nhau không.
constexpr rect njin::rect_intersection (rect a, rect b)
 Phần giao của hai hình chữ nhật.
constexpr contact njin::collide_rects (rect a, rect b)
 Va chạm hai hình chữ nhật, đẩy a ra theo trục chồng ít nhất.
contact njin::collide_circles (circle a, circle b)
 Va chạm hai hình tròn.
contact njin::collide_circle_rect (circle c, rect r)
 Va chạm hình tròn với hình chữ nhật.
constexpr vec2 njin::reflect (vec2 velocity, vec2 normal)
 Phản xạ vận tốc qua một pháp tuyến, như bóng nảy khỏi tường.

Mô tả chi tiết

Kiểm tra chồng nhau và đẩy ra giữa điểm, hình chữ nhật, hình tròn.

Thông tin về hàm

◆ point_in_rect()

bool njin::point_in_rect ( vec2 p,
rect r )
constexpr

Điểm có nằm trong hình chữ nhật không.

Điểm nằm trên cạnh trái/trên được tính là trong, cạnh phải/dưới thì không.

Các tham số
pĐiểm.
rHình chữ nhật.
Giá trị trả về
true nếu p nằm trong r.

◆ point_in_circle()

bool njin::point_in_circle ( vec2 p,
circle c )
constexpr

Điểm có nằm trong hình tròn không.

Các tham số
pĐiểm.
cHình tròn.
Giá trị trả về
true nếu p cách tâm không quá bán kính.

◆ rects_overlap()

bool njin::rects_overlap ( rect a,
rect b )
constexpr

Hai hình chữ nhật có chồng nhau không.

Chỉ chạm mép thì không tính.

Các tham số
aGiá trị thứ nhất.
bGiá trị thứ hai.
Giá trị trả về
true nếu a và b chồng nhau.

◆ circles_overlap()

bool njin::circles_overlap ( circle a,
circle b )
constexpr

Hai hình tròn có chồng nhau không.

Chỉ chạm mép thì không tính.

Các tham số
aGiá trị thứ nhất.
bGiá trị thứ hai.
Giá trị trả về
true nếu a và b chồng nhau.

◆ closest_point()

vec2 njin::closest_point ( rect r,
vec2 p )
constexpr

Điểm trong r gần p nhất.

Các tham số
rHình chữ nhật.
pĐiểm.
Giá trị trả về
Điểm trong hoặc trên cạnh r gần p nhất.

◆ circle_rect_overlap()

bool njin::circle_rect_overlap ( circle c,
rect r )
constexpr

Hình tròn và hình chữ nhật có chồng nhau không.

Các tham số
cHình tròn.
rHình chữ nhật.
Giá trị trả về
true nếu c và r chồng nhau.

◆ rect_intersection()

rect njin::rect_intersection ( rect a,
rect b )
constexpr

Phần giao của hai hình chữ nhật.

Các tham số
aGiá trị thứ nhất.
bGiá trị thứ hai.
Giá trị trả về
Phần giao, hoặc hình chữ nhật kích thước 0 nếu không chồng nhau.

◆ collide_rects()

contact njin::collide_rects ( rect a,
rect b )
constexpr

Va chạm hai hình chữ nhật, đẩy a ra theo trục chồng ít nhất.

Các tham số
aGiá trị thứ nhất.
bGiá trị thứ hai.
Giá trị trả về
Thông tin va chạm; normal là hướng đẩy a ra khỏi b.

◆ collide_circles()

contact njin::collide_circles ( circle a,
circle b )
inline

Va chạm hai hình tròn.

Các tham số
aGiá trị thứ nhất.
bGiá trị thứ hai.
Giá trị trả về
Thông tin va chạm; normal là hướng đẩy a ra khỏi b.

◆ collide_circle_rect()

contact njin::collide_circle_rect ( circle c,
rect r )
inline

Va chạm hình tròn với hình chữ nhật.

Các tham số
cHình tròn.
rHình chữ nhật.
Giá trị trả về
Thông tin va chạm; normal là hướng đẩy hình tròn ra khỏi r.

◆ reflect()

vec2 njin::reflect ( vec2 velocity,
vec2 normal )
constexpr

Phản xạ vận tốc qua một pháp tuyến, như bóng nảy khỏi tường.

Các tham số
velocityVận tốc tới.
normalPháp tuyến của mặt, độ dài 1.
Giá trị trả về
Vận tốc sau khi nảy.