ofxBox2dをWindows環境で使う

Box2dxという物理エンジンがあるのですが、openFrmaeworksのaddonが用意されているようです。

Processingの時にお世話になった楽しいライブラリなので、openFrameworksでも試してみました。

[ 環境 ]
・Windows 10
・Visual Studio 2015
・openFramewoks 0.9.8

Box2D
https://ja.wikipedia.org/wiki/Box2D

とりあえず、通常のaddonと同じようにGitHubからデータを引っ張ってきます。
openFrameworksのバージョン0.9.8はstableを使うように書いてあるのでそちらのブランチから持ってきましょう。

ofxBox2d
https://github.com/vanderlin/ofxBox2d

そのままでは使えなかったのですが、2点程対応して使えるようにしました。

OSX/linuxユーザが多いためか、Windows環境だと手を加える必要があったり、色々なソフトを導入しないと使えないaddonとか良くあります。

C++なのでプログラミングできれば、SDKを直接呼んだ方が早い場合もありますね。OpenCVやKinectはそうしています。

1.追加のインクルードディレクトリに「[openFrameworks_dir]\addons\ofxBox2d\libs」を追記

openframerowks/addonsフォルダに配置して、プロジェクトを新規作成、使用するを選択する画面でofxBox2があることを確認して、チェック。そのままビルドするとエラーが数件発生しました。

headerファイルがないといわれますがフォルダを覗くと実体は存在しているようだったので、Pathが通じるようにしてあげましょう。


32bit,64bitのそれぞれあるので、注意しましょう

2.「ofxBox2dPolygonUtils.h」の「simplifyContour」関数を一部修正する

「式には定数値が必要です」というエラーが出ます。私もC#からC++に移行した身なので、始めの頃はやろうとしてエラーにしてましたね。

変数の値で配列を作ろうとしているので、怒られます。
ネットで調べながら下記のように修正しました。

普段だと動的な配列はvectorとかのコンテナを使ってしまうので、こういうC言語由来の書き方は苦手ですね。自信は無いですが、大丈夫のはず…(危険なコードだったら誰か教えて)

とゆーか、stableにこのコードがあるってことは、コンパイラによってはOKのものもあるのかな。C/C++は奥が深すぎて毎日勉強ですね。

[ほしいものリスト]
Amazon

[ Sponsor Link ]