今回から
少し、2D物理エンジンで遊ぼうと思います
box2dwebを使います。
2D物理エンジンbox2dのJavascript版です。
https://code.google.com/p/box2dweb/
Downloadsから
Box2dWeb-2.1a.3.zip
をダウンロードします。
・Box2dWeb-2.1.a.3.js(ライブラリ本体)
・Box2dWeb-2.1.a.3.min.js(圧縮版)
これだけで物理エンジンが使えちゃいます
スマホのブラウザだとうまく動かない場合があるようですね。まぁ、いいや・・・
http://www.dagage.com/weblog/archives/1094
Box2dには
・Shape(形状部品、異なる材質などの複数組み合わせも可能)
・Body(実際衝突判定を行うオブジェクト)
という概念があるみたい
昔PhysXいじってたことあるけど、概念ほぼ同じぽい
さて、いきなり哲学的な話になる訳ですが
ゲームというフィクションの世界にわざわざリアリティ溢れる
物理エンジンを入れるわけはなんでしょうか
いろいろ理由はあると思うのですが、私はこう考えています
①物理法則に基づいているので直感的
②単純なゲームロジックよりも挙動に意外性が生まれやすい
物理エンジンをゲームに組み込むときの注意点というか難しいところは
プレイヤーの動作をそのまま物理エンジンにしてしまうと操作しづらいものになってしまうので
プレイヤー操作は物理エンジンから分離する必要があるのですが、当たり判定は物理エンジンに準拠しなければなりません。
Box2dWebで複雑な衝突オブジェクトを作成してみる
Box2dWebでオブジェクトを合体させてみる
Box2dWebでオブジェクトに力を加えて動かしてみる
Box2dWebでマウスで色々放り投げてみる
Box2dWebでバネを作ってみる
Box2dWebで滑車を作ってみる
Box2dWebで動く床を作ってみる
Box2dWebの回転ジョイントで乗りものを作ってみる
Box2dWebで開閉扉を作ってみる