I think the easiest way to go about this is to have one ArrayList of GameStates for the background layers, and another for the HUD layers. It will both be updated and drawn in the order of Background -> Main -> HUD.
Since each layer is its own GameState, you enforce both drawing and updating rules, but never interfere with the interactions of any of the other states.
I think the easiest way to go about this is to have one ArrayList of GameStates for the background layers, and another for the HUD layers. It will both be updated and drawn in the order of Background -> Main -> HUD.
Since each layer is its own GameState, you enforce both drawing and updating rules, but never interfere with the interactions of any of the other states.
Sounds like a good enough idea.