またRubyでProcessingを書けるようになったらいいんじゃないかと、processing-ruby-modeをいじっていて、Processing3で動くように載せ替えた。でやっぱちょっと問題だと思うのは、Rubyで書く場合の変数アクセスだ。
ProcessingのコードはPApplet
を継承したクラス内に書かれたこととして扱われる。Processing/Javaで書いた場合には変数アクセスはなんの修飾もせずにできる:
float x = 0; |
これはJavaがメンバ変数へのアクセスにthis
を省略できるから。それ対してRubyの場合には@
をつける必要がある:
def setup |
どうしてこう書かなきゃいけないのか?@
ってなによ?という疑問が湧いて、裏側を説明しないといけなくなり、はてはスコープがどうのとかいう話も出す必要が出てでくるのでこれはあまりよくないと思う。
そこでsetup
やdraw
というグローバルな関数を用意して、ブロックを渡すようにしたらどうだろうか:
x = 0 |
このほうがとっつき的にはよさそうな気がする。まあこれはこれで、do
を忘れてエラーが出るとかいうことにはなりそうだけど…。あとは地の文でグラフィクスの関数呼ばれたらどうするのとか。