The answer has been provided! You're missing the point of what everyone has been saying i'm afraid.
Every frame you blank the screen, draw whatever you want to draw, and then display it. This means that to remove something previously displayed from the current display, you simply don't draw it anymore.
while(running)
{
// events
// logic
App.Clear(); // Blank the screen
if(collision == false) // If there is no collision
{
App.Draw(sprite) // Draw the sprite
}
App.Display(); // Finally display what we've drawn this frame
}
This is very simplistic, and you'll want to do a lot more than that with any actual game object, but it's the idea people have been trying to get across. You only call draw on the sprite during the frame if there is no collision, if there IS a collision, then draw doesn't get called, and the sprite will dissapear from the screen.
You don't actively undraw anything, at any point. Essentially, every frame you want to display a freshly drawn image.