У меня есть функция, которая должна возвращать true, если два круга сталкиваются и ложны в противном случае, и чтобы помочь во время разработки, я также добавил часть внутри функции, чтобы нарисовать hitbox только тогда, когда они не являются встречные.Allegro Circle Collision Detection
Моя проблема даже в том случае, когда они сталкиваются, она продолжит рисовать hitbox и говорит, что они не сталкиваются, указывая, что функция не работает должным образом.
int colliding(int x, int y, int r, int x1, int y1, int r1)
{
//compare the distance to combined radii
int dx = x1 - x;
int dy = y1 - y;
int radii = r + r1;
if ((dx * dx) + (dy * dy) < radii * radii)
{
return true;
}
else
{
player.hitbox.draw();
return false;
}
}
int main()
{
while (true)
{
player.draw();
int cx = 300;
int cy = 300;
int cr = 50;
al_draw_filled_circle(camera.getScreenPosX(cx), camera.getScreenPosY(cy), cr, al_map_rgb(0, 0, 0));
colliding(player.hitbox.posX, player.hitbox.posY, player.hitbox.radius, cx, cy, cr);
al_flip_display();
al_clear_to_color(al_map_rgb(255, 255, 255));
}
}
Вы были правы, это было неправильно с позицией hitboxes, хотя я не уверен, что. Однако я могу найти способ обойти его. –