2014-05-11 159 views
0

我在學習Box2d和EaselJS。到目前爲止,我一直在使用Box2d的「調試」形狀。如何從EaselJS製作自定義形狀,啓用物理?例如,我有以下代碼在屏幕上產生隨機球。使用Box2d與EaselJS形狀?

var fixDef = new box2d.b2FixtureDef(); 
     fixDef.density = 1; 
     fixDef.friction = 0.5; 
     fixDef.restitution = 0.5; 
     var bodyDef = new box2d.b2BodyDef(); 
     bodyDef.type = box2d.b2Body.b2_dynamicBody; 
     bodyDef.position.x = Math.random()*800/SCALE; 
     bodyDef.position.y = 0; 
     fixDef.shape = new box2d.b2CircleShape(Math.random()*100/SCALE); 
     world.CreateBody(bodyDef).CreateFixture(fixDef); 

如何使用EaselJS shape對象?

謝謝!

回答

1

對於要顯示的每個DisplayObject(形狀,位圖等),您需要一個自己的b2dObject。然後,每次更新舞臺(或您的b2dWorld)時,都必須檢索b2dObject的位置和旋轉,並將其應用於您的形狀 - >完成。 你可以在這裏找到一個很好的例子:https://github.com/CreateJS/sandbox/blob/master/EaselJS_Box2dWeb

你需要的是這樣的:

var pt = body.GetPosition(); var sprite = ball.sprite; sprite.x = pt.x*WORLD_SCALE; sprite.y = pt.y*WORLD_SCALE; sprite.rotation = body.GetAngle()/Math.PI*180;