ム板から誘導されてきました

ゲーム製作についての質問です

ゲームは始まったら当然スグゲーム開始ではなく
タイトル画面があったり設定画面があったりしますよね
これらはどうやって実装したらいいのでしょうか?
一応自分で思いついたのは以下の方法です

ゲームループ内で
switch(game_status)
case START_INIT:
  start.Init();
case START_FRAME:
  start.update();
  start.draw();
  break;
case GAME_INIT:
  game.Init();
case GAME_FRAME:
  game.update();
  game.draw();
  break;

といった感じです
何かもっとスマートな方法はありますでしょうか?