PICO-8でゲームをつくっていますが、関数をテーブルの中に書けることを知り、実験してみました。
複雑なことはわかりませんが、2つのテーブルを作り、その一つのテーブル内に関数を作ります。
その関数では、自らのテーブルの要素以外に他のテーブルの変数を読み書きしています。

snk = { x=16, y=32}
cam = { x=0, y=32, prn=function() print(“snk.x:”..snk.x..” snk.y:”..snk.y) print(“cam.x:”..cam.x..” cam.y:”..cam.y) print(“cam.x=snk.x cam.y=snk.y”) cam.x=snk.x cam.y=snk.y print(“snk.x:”..snk.x..” snk.y:”..snk.y) print(“cam.x:”..cam.x..” cam.y:”..cam.y) cam.x=snk.x+8 cam.y=snk.y-8 print(“cam.x=snk.x+8 cam.y=snk.y-8”) print(“snk.x:”..snk.x..” snk.y:”..snk.y) print(“cam.x:”..cam.x..” cam.y:”..cam.y) end}
cam.prn()
実行結果は、

これで、各オブジェクト(?)の変数と関数をテーブル1つにまとめられて、扱いやすくなるのでは?と思い、コードを書き換えてみようと思います。
コメント