画面遷移のやつを改良してみました

 

cacapon.hatenablog.com

 

以前、こちらでまとめた画面遷移のコードですが、

pyxelでRPG作りをしていた時に、もっとコンパクトにできたので、

それを共有したいと思います~😃

 

それで、こんな感じになりました😄

 

ゲームシーンを辞書型で保持することで、if文を無くしました。

 

大きな変更点は、update,drawをする前に、

switch文のように一つずつ今の状態をチェックする形でどの関数を呼び出すか

きめていたのですが、これを辞書型に持つことで、

if文を丸ごとカットすることに成功しました✨

 

それと、各シーンを別のクラスにまとめなおしました。

作っていませんが、抽象クラスでシーン用のクラスを作ると

もっと、堅牢なクラスになるかもしれません😄

 

ただし、デメリットもあって、

updateの際に、更新が発生しない場合にも、

必ず呼ばれたシーンの状態を返すように変更してあります😥

 

これは関数を別のクラスに分離したことによる対応なのですが、

前だとしなくていい処理だったので、

ちょっとどうにかできないかなぁと考え中…🙃

 

とまあ、全てがうまく行ったわけではありませんが、

こうやって新しく改良するのも色んな発見があっていいですね✨