2D物理エンジンを使ったみた (C#ソース付)
最近のゲームでは物理エンジンを搭載して物体の動きがやたらリアルです。
これをお手軽に実現できる2D専用の物理エンジンもあります。
Box2D
これは、もともとC++用のライブラリですが、JavaやFlash(ActionScript)、JavaScript等いろんな言語用に移植されています。
.Net版もあります。
box2dx -Box2DX is a C# port of Box2D - 2D Physics Engine.-
というわけで、C#から呼び出して動かしてみました。
なかなかリアルにうごきますでしょ?
プログラムは↓からダウンロードできます。
http://dokokano.net/~fslasht/warehouse/programs/testBox2d_20090318.zip
【動作環境】
Windows用。
.Net Framework 2.0が必要です。
【操作方法】
画面を左クリックすると四角、右クリックすると丸が、でてきます。
それぞれ物理法則にしたがって動きます。
【開発について】
C#で開発(VS2008EE)してます。ソースつき。
うまくビルド出来ないときは「Box2DX.dll」を参照に加えてみてください。
● Box2Dをはじめよう
僕の場合、以下のような流れで調べていきました。
・入門編
→Box2DでActionScript物理プログラミング:第1回 Box2Dを使ってみよう (技術評論社)
Flashでの利用を前提とした記事ですが、Box2Dの考え方や出来ることがよくわかります。
・ライブラリをダウンロードしよう
→Downloads - box2dx - Google Code:
.Net版のプロジェクトページからダウンロード
「Box2DX-2.0.1.3-r175-RC-DemoSuite.zip」
・サンプルを動かしてみる
DLLとサンプルプログラムが入ってます(Windows用)。
とりあえず動かしてみよう。
・HelloWorld.exe エンジンの動作結果を文字だけで表示
・TestBed.exe いろんなシーンのサンプルを動かせます。タノシス
・ソースを見てみよう
HelloWorld.exeのソースは、ブラウザでも見られます。→Program.cs
地面とオブジェクトを定義すると、オブジェクトが地面に落ちる。
・・・というのを座標表示します。
グラフィックはでませんがソースみながら実行結果をみるとわかりやすいかも。
ソースは結構短いです。
・マニュアル
公式マニュアル(英語)はこちら
Box2D v2.0.2 User Manual
↓のブログで翻訳中。こちら大変参考になりました。
Box2Dユーザマニュアル
こんな感じで、HelloWorld.exeのソースを改造して、グラフィックつけたりしていっています。
僕のプログラムはソース付なので参考になるといいなあ。いろいろ改造してみてちょ。
これをつかって何かゲーム作ってみたいですね。