processing の color 型は、コンパイル時に int 型に変換されてるようです。
なので processing で
color c = #000000;
と書いていたものを Eclipse(Java)で書く場合は
int c = 0xff000000;
になります。32ビットカラーなのも注意。
processing の IDE が pde ファイルを Java に変換するのは、PdePreprocessor.java というクラスでおこなっているようです。color に関してコメントも書かれていました。
color c = #cc0080; should unpack to 0xffcc0080
(the ff at the top is so that the color is opaque),
which is just an int.
ちなみに PApplet クラスのソースコードは PApplet.java のようです。actionscript で使いたいときには、これを元に移植すればいいですね。
Processing 標準の IDE が、コードの補完をしてくれなくて使い辛いので、普段 mac では TextMate を使っていたんだけど、windows でも何かエディターがあれば便利だよなあと思い探してみました。
ざっと調べてみた結果、標準以外で開発する場合は下記の手段がある(まだあるかもしれない)。
mac
・Xcode
・TextMate
・Eclipse
win
・jEdit
・Eclipse
このうち共通するのは Eclipse のみ!ということで、WindowsでのProcessing用エディタ1Eclipse編を参考に思い切って導入してみた。
やってみたら意外と簡単で、Eclipse インストールして、新規で java のプロジェクト作って、ライブラリで processing の lib フォルダに入ってる core.jar を追加するだけのことだった。
ただ、標準と書き方が若干違っていて、
import processing.core.*;
public class HelloP5 extends PApplet
{
public void setup()
{
}
public void draw()
{
}
}
みたいに書くことになる。標準の書き方よりは長くなってしまうけど、個人的には逆にこっちのほうが as3 っぽいのでイイかもしれない。
今まで processing やってきたことは PApplet を拡張した java だったんか!ってのを、実際やってみて改めて気付きました。
あと調べててわかったのは、標準の IDE で複数のタブを使ってクラス書いてたのは、実は一つに結合されていたってこと。
[Processing][仕様].pdeはインナークラス、.javaは別クラス
複数のタブを開いて別のクラスを作っても、そのクラスはスケッチ本体クラスのインナークラスとして結合されるのです。別の言い方をすると、スケッチのディレクトリ直下にある「*.pde」ファイルは、全部結合された後、コンパイルされるということです。
なので、Eclipse で複数クラス作るときは、メインの PApplet を拡張したクラスのインスタンスを渡すか、参照用の静的クラスかシングルトンを作った方がいいかも。
Eclipse 自体は、普段 actionscript で flexbuilder を使っていたので、違和感なく使えそう。
しばらく使ってみて調子良さそうだったら subversion なんかも入れてみます。