【问题标题】:Use Box2d with EaselJS Shapes?将 Box2d 与 EaselJS 形状一起使用?
【发布时间】:2014-05-11 22:56:41
【问题描述】:

我正在尝试学习 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 对象?

谢谢!

【问题讨论】:

    标签: javascript html box2d easeljs box2dweb


    【解决方案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;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2018-04-16
      • 2020-11-06
      相关资源
      最近更新 更多