На изображении мяч будет действовать так, как будто его бьют, в любом месте сверху и снизу весла (где-нибудь в диапазоне белых линий). Как заставить шар менять направление, только когда он ударяет в весло?
https://i.stack.imgur.com/CRYFN.png
int Paddle::checkBallCollision(Ball *b){
float paddle_topy, paddle_bottomy;
paddle_topy = this->position.y + length / 2;
paddle_bottomy = this->position.y - length / 2;
int PaddlePX = this->position.x;
int ballPX = b->position.x;
int ballPY = b->position.y;
if ((ballPY < paddle_bottomy) && (ballPY > paddle_topy) && (ballPX - b->width) > (PaddlePX - width / 2 )){
DebugPrintf(" Paddle Hit ");
return 1; // there is a collison
}
else{
return 0; // there is no collision
}
}
Задача ещё не решена.
Других решений пока нет …