in Debug_demo/Collisions.cpp [32:59]
bool applyCollision(Ball& b,
CollisionType type) {
int mulX = 1, mulY = 1;
switch (type) {
case Left:
if (b.getSpeed().x() < 0) mulX = -1;
break;
case Right:
if (b.getSpeed().x() > 0) mulX = -1;
break;
case Top:
if (b.getSpeed().y() < 0) mulY = -1;
break;
case Bottom:
if (b.getSpeed().y() > 0) mulY = -1;
break;
case None:break;
}
if (mulX == -1 || mulY == -1) {
b.setSpeed(QPointF(b.getSpeed().x() * mulX, b.getSpeed().y() * mulY));
return true;
}
else {
return false;
}
}