Flash box2d车身形状修改

Flash box2d车身形状修改,flash,actionscript-3,box2d,physics,Flash,Actionscript 3,Box2d,Physics,是否可以在指定后修改身体内的形状,例如,我的游戏英雄身体有一个长方体形状,当我按下向下箭头时,我希望我的英雄蹲下,这意味着我需要调整身体形状的大小 我已经在谷歌上搜索过了,但似乎modyfing形状的主题并不那么流行。如果这是不可能的,也许你知道一个更好的方法。如果不更换形状并将其重新连接到身体上,我认为这是不可能的 我的建议是有两个独立的主体,一个用于角色的底部,一个用于角色的顶部,通过棱柱连接 更多关于关节的信息。是的,我考虑过这个选项,但我想将车身数量限制在最小,我希望box2d手册中没有

是否可以在指定后修改身体内的形状,例如,我的游戏英雄身体有一个长方体形状,当我按下向下箭头时,我希望我的英雄蹲下,这意味着我需要调整身体形状的大小


我已经在谷歌上搜索过了,但似乎modyfing形状的主题并不那么流行。如果这是不可能的,也许你知道一个更好的方法。

如果不更换形状并将其重新连接到身体上,我认为这是不可能的

我的建议是有两个独立的主体,一个用于角色的底部,一个用于角色的顶部,通过棱柱连接


更多关于关节的信息。

是的,我考虑过这个选项,但我想将车身数量限制在最小,我希望box2d手册中没有记录这种可能性。那么,你可以做的是,让车身由两个固定装置组成,然后相对于车身的其余部分重新定位顶部的固定装置。它必须是一个瞬间的东西,而不是一个动画效果,我不确定它在物理方面的效果如何-我写这篇文章时没有测试-但这是我能想到的唯一一个身体解决方案。是的,这是我想的,但我无法在身体内移动形状,我很好奇是否有可能对它们进行任何转换。
- (void)scaleShape
{
    b2CircleShape shape;

    for (b2Fixture *f = self.yourb2Body->GetFixtureList(); f; f = f->GetNext())
    {
        shape = *(b2CircleShape *)f->GetShape();

        self.yourb2Body->DestroyFixture(f);
        shape.m_radius += 0.01;
        self.yourFixture.shape = &shape;
        self.yourFixture.isSensor = true;
        self.yourb2Body->CreateFixture(&self.yourFixture);
    }