Пишу пинпонг с SFML , как правльно написать коллизию для спрайта SwagBall относительно спрайтов player
(код в методе класса SwagBall описывающий коллизию)
void SwagBall::updateWindowBoundsCollision()
{`
if(swagBallBounds.left + swagBallBounds.width >= player.sprite2.getGlobalBounds().left)
{
movementSpeed = -4.f;
}`
}
Такой вариант работает не правильно, шар отталкивается даже от месть где нет спрайта игрока, спрайты игроков расположены по краям.
Ответы (1 шт):
Автор решения: Dmitriy None
→ Ссылка
Функции должна быть такой
if(this->sprite.getGlobalBounds().top + this->sprite.getGlobalBounds().height >= target->getSize().y)
{
this->sprite.setPosition(this->sprite.getGlobalBounds().left, target->getSize().y - this->sprite.getGlobalBounds().height);
}
и вызывать в Game::update();