I would seriously consider sticking it out with the game state management example. It is a great framework for your first game. If you were designing one that can be re-used, with menu items etc. you'd probably end up with something similar.
The basic idea is to have a stack of screens (GameScreen
is the base screen class, The ScreenManager
is the 'stack' manager in the sample i think).
i.e. start with a title screen. Pressing a button pushes the main menu screen onto the stack.
While any screen is transitioning on, render it as such (menu items can use the transition amount to decided where to render, so they appear to slide on-screen).
Always direct input to only the top screen, even while transitioning on (so fast menu selectors can easily get into the game while the menus are transitioning on).
Once the top screen is fully transitioned, only render that screen.
So during gameplay you could end up with the following on the screen stack:
TitleScreen, MainMenuScreen, GamePlayScreen, PauseMenuScreen.
In that state, the pause menu gets rendered, and that's the screen the player controls. To 'exit' the screen, simply pop it off of the stack (or start it transitioning off), then it's the gameplay screen that gets input and is rendered.