reviveの作業ログ
サンプル作成
http://onegame.bona.jp/physics2d/2/のサンプルほぼそのままなんだけど、一応作成。
球と地面だけ作成した。気付いた点としては、「線(ImmovableGate)の当たり判定は片方しかない」らしい、ということ。つまり、片方からはぶつかるけど、もう片方からはすり抜ける、ということ。地面として使う場合、Nrm(法線)の方向が重要になりそう。
それはさておき、四角形で動くものが作れないというのは、地味につらいかもしれない。なので、他の物理エンジンも試してみることにする。解説の多さからいくとAPEかな。Box2Dも気になるんだけど。
コード
package { import flash.display.*; import de.popforge.revive.application.*; import de.popforge.revive.member.*; public class Main extends Sprite { private var scene:SceneContainer; public function Main() { stage.scaleMode = StageScaleMode.NO_SCALE; scene = new TestScene(); addChild(scene); } } } import de.popforge.revive.application.*; import de.popforge.revive.member.*; class TestScene extends SceneContainer { static private const GROUND_W:Number = 200; static private const GROUND_Y:Number = 200; static private const CIRCLE_X:Number = 0; static private const CIRCLE_Y:Number = 0; static private const CIRCLE_R:Number = 20; public function TestScene() { //Ground //向きに注意。-0.5〜と0.5を入れ替えるとすり抜ける(=今の状態でも、下からだとすり抜ける) simulation.addImmovable(new ImmovableGate(-0.5*GROUND_W, GROUND_Y, 0.5*GROUND_W, GROUND_Y)); //Circle simulation.addMovable(new MovableCircle(CIRCLE_X, CIRCLE_Y, CIRCLE_R)); //Draw drawImmovables(); } }