久々に、、、Box2Dさわってみた。
これの続きです。
ってマジで久しぶりだ(^-^;;
今までジョイントには全く手を出さなかったので、
モノがぶつかると回転するオブジェクトを追加してみました。
音符がぶつかることで障害物が回転します。
↓以下動くものと、一部のソース
画面クリックで開始、
[←][→]キーで移動、半角[s]キーでジャンプです。
以前公開したコードに、
以下のように回転するジョイントを追加しているだけです。
四角を物理世界につくって、別のオブジェクトとジョイント!
ACTIONSCRIPT:
- //ジョイント元
- var trianglePolygonDef:b2PolygonDef = new b2PolygonDef;
- trianglePolygonDef.vertexCount = 3;
- trianglePolygonDef.vertices[0].Set(-1,0);
- trianglePolygonDef.vertices[1].Set(0,-1);
- trianglePolygonDef.vertices[2].Set(1,0);
- var triangleBodyDef:b2BodyDef = new b2BodyDef;
- triangleBodyDef.position.Set(7.3, 10);
- trianglePolygonDef.filter.maskBits = 0x00;
- trianglePolygonDef.filter.categoryBits = 0x00;
- var triangleBody:b2Body = world.CreateBody(triangleBodyDef);
- triangleBody.CreateShape(trianglePolygonDef);
- var rollSquareBodyDef:b2BodyDef = new b2BodyDef();
- rollSquareBodyDef.userData = new Object;
- rollSquareBodyDef.userData.id = "rolls";
- rollSquareBodyDef.userData.spt = this.s1_sq;
- rollSquareBodyDef.position.Set(2, 4);
- var rollSquareShapeDef:b2PolygonDef = new b2PolygonDef();
- rollSquareShapeDef.friction = 0.5;
- rollSquareShapeDef.density = 50;
- rollSquareShapeDef.SetAsBox(1.5, 0.2);
- var rollSquareBody:b2Body = world.CreateBody(rollSquareBodyDef);
- rollSquareBody.CreateShape(rollSquareShapeDef);
- rollSquareBody.SetMassFromShapes();
- var jointDef:b2RevoluteJointDef = new b2RevoluteJointDef;
- jointDef.Initialize(triangleBody, rollSquareBody, rollSquareBody.GetWorldCenter());
- jointDef.motorSpeed = 3;
- jointDef.maxMotorTorque = 1;
- jointDef.enableMotor = true;
- var frontJoint:b2RevoluteJoint = b2RevoluteJoint(world.CreateJoint(jointDef));
簡単!
最近、FullFlashサイト作ろうかなーとか、
いろいろやっています。
- Newer: Box2d で風雨に揺れる葉っぱのようなもの
- Older: Flex3 画像をロードして選択範囲を切り出し
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://parpue.net/web/318/trackback
- Listed below are links to weblogs that reference
- Box2D オブジェクトにオブジェクトをあてて回転させる from parpue.net



