クラスっぽい処理

関数がテーブル内の要素を参照する Lua
関数がテーブル内の要素を参照する

今までBASICとC言語の2つを主に使ってきた私。

クラス、インスタンスというのは、C#で少しかじったぐらいで、PICO-8のゲームづくりには、縁の無いものと思っていました。

ある日、時々ソースコードで見かける:(コロン)の存在がずっと気になっていて、調べてみて気付きました。

テーブル内に関数を要素として持つことは知っていましたが、自分の居るテーブル要素にアクセスするには、自分自身を指定しなければならず、自分自身を「this」と明記し、引数で参照できるようにします。

そして関数内で参照するには、this.要素名と書いてアクセスするのですが、関数名を記述するときに、テーブル名.関数名ではなく、テーブル名:関数名と、コロンでつなぐことで、引数のthisを省略することが出来るのです。

記事は、それを目的に書いてあったのですが、私はこの記事から、「キャラクタのテーブル内にキャラクタに関する関数も書ける!」とヒントを得たのです。

今までは、キャラクタのテーブル内の要素は変数ばかりで、番号要素でどのキャラクタかを区別して、該当関数へテーブルを渡して処理していましたが、テーブルを呼び出してテーブル名:関数名で処理でき、for 変数名 in all(テーブル名)で簡単にループで呼び出して関数を実行できるようになりました。

これで該当関数へ飛ばす処理を書かなくて済むし、トークンも節約できそうです。

コメント

タイトルとURLをコピーしました