読者です 読者をやめる 読者になる 読者になる

FUJILOG

見た、聴いた、触れたこと。 動かしたもの、書いたもの。 ウェブとリアルの備忘録です。

proce55ing/processing で Box2d

ざっと見た限り、processingでBox2dをいじる日本語文献が見当たらなかったので、備忘録がてらに。

もともと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.*;