もともとC++で動くところのBox2dをJava用に直したのがjBox2d。で、このjBox2d自体はprocessingのcore.jarをもとに動いているとあり。。
では、processingではデフォルトで動くかというとそうでもありませんでした。
下記、試行錯誤。
SourceforgeにあがっているjBox2d(JBox2d-2.0.1.zip)をダウンロードして、いつものよう(※)に外部ライブラリに組み込んだものの、org.jbox2d.p5 が見当たらないというエラーを吐いて、コードは動きませんでした。
※)
processing.appの右クリック>パッケージ表示>Contents>Resources>Java>Libraries の直下に新規フォルダ「jBox2d」を作成後、さらにその下に新規フォルダ「library」を作成。
その中に、ダウンロードしたライブラリ内にあるjbox2d-2.0.1-library-onlyをコピー&リネームして "jBox2d.jar"として先ほどのlibrary直下に配置。
SourceforgeにあるjBox2dライブラリをそのまま使うことはできないようなので、本家サイトのFAQを参照したところ、「BoxWrap2D」なるライブラリがあるとのこと。
「BoxWrap2D」ライブラリのダウンロード先はこちら。
試しに、processing上でこのBoxWrap2Dライブラリをimportしてみると、
import org.jbox2d.util.nonconvex.*;
import org.jbox2d.dynamics.contacts.*;
import org.jbox2d.testbed.*;
import org.jbox2d.collision.*;
import org.jbox2d.common.*;
import org.jbox2d.dynamics.joints.*;
import org.jbox2d.p5.*;
import org.jbox2d.dynamics.*;
と、Box2dを動かすのに必要な要素はすべて含まれていそうでした。
ということで、BoxWrap2DライブラリをDLしてその中に含まれるBoxWrap2D.jarを、上記(※)の手順同様で作成した「jBox2d」>「library」の中に”jBox2d.jar”とリネームして配置し、Box2dのコードを実行すると動作しました。
追記:2009/10/07
サンプルコード内で、下記のようにインポート箇所が含まれる場合があるのですが、これらはコメントアウトして除いても動作するようです。
import org.jbox2d.testbed.tests.*;
import org.jbox2d.testbed.*;
import org.jbox2d.testbed.timingTests.*;
import org.jbox2d.util.blob.*;
0 件のコメント:
コメントを投稿