Box2D机身与b2FixtureDef.shape.SetAsArray不兼容类似俄罗斯方块的形状

时间:2014-05-19 07:43:39

标签: javascript box2d box2dweb

我尝试使用box2d的SetAsArray函数建模俄罗斯方块形状。但是形状没有与其他物体正确碰撞,有时会掉落,有时会潜入。没有方形或圆形的问题。

    fixDef.shape.SetAsArray([
        new b2Vec2(-1,1.5),
        new b2Vec2(-1,-1.5),
        new b2Vec2(1,-1.5),
        new b2Vec2(1,-0.5),
        new b2Vec2(0,-0.5),
        new b2Vec2(0,1.5)],6
    ); // Tetris shape

    bodyDef.position.Set(7,0);
    var body=world.CreateBody(bodyDef);
    body.CreateFixture(fixDef);

我做了一个小提示来显示效果:

http://jsfiddle.net/lavisrap/JrzPH/598/

1 个答案:

答案 0 :(得分:1)

从Box2D手册:"多边形形状是实心凸多边形。当连接内部两个点的所有线段都不穿过多边形的任何边时,多边形是凸的。" http://www.box2d.org/manual.html