1. Instancing a new ScreenManager object, adding it as a component.
2. Calling the AddScreen method of ScreenManager to Add BackgroundScreen and MainMenuScreen.
3. When calling the update method of ScreenManager, the updating order for each added child screen will be reversed as they were added. Handling will like stack.
4. Because of each child screen is inherits from the parent screen GameScreen, so, if the child screen isn’t override the update method, then it will call the parent one.
5. Calling draw method to draw the added screen in normal order, if the child is transitioned off, then its state will be hidden, and this indicate that the child will not be drawn.
6. The BackgroundScreen will always on.
7. After chose one item from MainMenuScreen, the corresponding screen will be add to the end of current screen list( for the #3).
8. About the child, the cancel event will remove itself out from the screen list.
9. If the child screen is a popup, then the other screen will still be drawn and covered by 2/3 alpha back color sprite.