Siemano, pisze grę w sfml która polega na tym, że sterujemy samolotem po osi x który jest na dole mapy a z góry lecą samoloty które musimy zastrzeliwywać. Zrobiłem mechanizm który sprawdza czy pocisk uderzył w samolot przeciwnika jednak nie zawsze on działa tzn. gdy pocisk trafi to raz on zadziała a raz nie.
pocisk ma wymiary 20x20 a punkt odniesienia to setOrigin(10, 0)
samolot przeciwnika ma wymiary 50x50 a punkt odniesienia to setOrigin(25, 50) ponieważ jest odwrócony o 180 stopni
void kolizja(Sprite& enemy, Sprite& bullet, bool & trafiony)
{
int x_bullet = bullet.getPosition().x;;
int y_bullet = bullet.getPosition().y;
int x_enemy = enemy.getPosition().x;
int y_enemy = enemy.getPosition().y;
bullet.setOrigin(10, 0);
if (y_bullet == y_enemy && x_bullet - 25 < x_enemy && x_bullet + 25 > x_enemy)
{
trafiony = true;
}
}