Unityも面白いけれど、Luaも好き

Unityでゲームを作成するのも面白いのですが、solar2Dでガリガリ書くのが好きです。

ゲームには現在の状態を管理する方法が必須です。

今回は現在のステータスと、ステータスの入れ替えをできるだけ綺麗に書こうと頑張ったコードです。

特徴

例えばC言語でEnumを使うと、これらのStatusはかなりシンプルにかけます。

比較時の対象を定数として扱えるので、何を比較したいか一目瞭然となります。

同じように、例えば以下のように記述したくなかった、というが、このコードを書いた理由です。

1の場合、ステータスがどのような値を取るのか、コードのあちこちに散らばり、収集がつきません。文字列を比較対象に取るなど、ミスが多発しそうで、論外ですね。

2の場合はステータスの分だけ行数を消費していき、さらに中身の設定に気を遣わねばならず、論外ですね。

3は C言語の Enum をそのまま持ってくるのに近い形です。しかし大概ステータスは同時にONにならないため、入れ替えが必要です。

そこで上記のコードです。利用例はこのようになります。

ステータスの、どの値を確認したいか、が if の中で明白なります。また設定も一行です。

もっと機能を盛りたくなりますが、ぐっと抑えておきます。

最終更新: 2022年8月20日