今までBASICとC言語の2つを主に使ってきた私。
クラス、インスタンスというのは、C#で少しかじったぐらいで、PICO-8のゲームづくりには、縁の無いものと思っていました。
ある日、時々ソースコードで見かける:(コロン)の存在がずっと気になっていて、調べてみて気付きました。
テーブル内に関数を要素として持つことは知っていましたが、自分の居るテーブル要素にアクセスするには、自分自身を指定しなければならず、自分自身を「this」と明記し、引数で参照できるようにします。
そして関数内で参照するには、this.要素名と書いてアクセスするのですが、関数名を記述するときに、テーブル名.関数名ではなく、テーブル名:関数名と、コロンでつなぐことで、引数のthisを省略することが出来るのです。
記事は、それを目的に書いてあったのですが、私はこの記事から、「キャラクタのテーブル内にキャラクタに関する関数も書ける!」とヒントを得たのです。
今までは、キャラクタのテーブル内の要素は変数ばかりで、番号要素でどのキャラクタかを区別して、該当関数へテーブルを渡して処理していましたが、テーブルを呼び出してテーブル名:関数名で処理でき、for 変数名 in all(テーブル名)で簡単にループで呼び出して関数を実行できるようになりました。
これで該当関数へ飛ばす処理を書かなくて済むし、トークンも節約できそうです。
コメント