Oh nearly a personal message.
Hi Raptor88!
Hmmm I'm not sure if the concept is explained on the original tutorial, anyways the function itself are there for the user to implement things.
For instance if you want to reset things as soon as you resume the state, you could place that code in the resume function.
The GameEngine calls pause() if you load another state without replacing it and calls resume() after getting back to the paused state, e.g. when you switch from the PlayState to the MenuState GameEngine calls pause() on the PlayState and when you switch back again it call resume() on the PlayState.
How you handle what gets displayed in the pausing state is completly up to you, i.e. if you draw a rectangle and then call pause manually the rectangle will still get drawn. If you want to prevent this, then you could have a boolean member variable and when it is set to true you simply don't draw the rectangle but something else.
Which lead me to think that I probably should add this member variable to the GameState itself...