İki daire birbiriyle çarpışıyor ve false olursa true olarak geri dönmesi gereken bir işlev var ve geliştirirken yardımcı olmak için, işlev görmediklerinde hit kutusunu çizmek için işlev içinde bir parça ekledim çarpışan.Allegro Circle Çarpışma Algılama
Sorunum, çarpıştığında bile, hitbox'ı çizmeye devam edecek ve işlevlerin düzgün çalışmadığını belirterek çarpışmayacaklarını söylüyor.
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));
}
}
Doğru muydun, ne yapacağıma emin olmamasına rağmen, isabetli kutuların pozisyonunda bir sorun vardı. Etrafında bir yol bulabilirim. –