Usually, you don't check to see if the collision is false ... you just decrement an objects y velocity by gravity until a collision is true ... then you do a response. Follow the general law of physics an object reacts to a force ... don't check for the absence of the force ... just check for the presence of a force.
Also, you should store your CountCollisions() in a variable because you can only count them once per UpdateWorld().
Also, you should store your CountCollisions() in a variable because you can only count them once per UpdateWorld().