bool applyCollision()

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;
    }
}