box2d体形修改

时间:2012-01-13 19:53:04

标签: flash actionscript-3 box2d physics

在分配之后是否可以修改身体内的形状,例如我的游戏英雄身体有一个盒子形状,当我按下向下箭头我希望我的英雄蹲伏女巫意味着我需要身体形状要调整大小。

我已经在谷歌中进行了搜索,但看起来modyfing形状的话题并不那么受欢迎。如果不可能,也许你知道更好的方法。

2 个答案:

答案 0 :(得分:0)

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

我的建议是有两个独立的身体,一个用于角色的底部,一个用于顶部,与棱柱关节连接。

(有关关节here的更多信息。)

答案 1 :(得分:0)

- (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);
    }