0

如何更新 chupmunk 中的空间 我的代码是:

// left
    shape1 = cpSegmentShapeNew(edge, cpvzero, cpv(0.0f, size.height), 0.0f);
    shape1->u = 0.1f; // minimal friction on the ground
    shape1->e = 0.7f;
    cpSpaceAddStaticShape(_space, shape1); // a body can be represented by multiple shapes

    // top
    shape2 = cpSegmentShapeNew(edge, cpvzero, cpv(size.width, 0.0f), 0.0f);
    shape2->u = 0.1f;
    shape2->e = 0.7f;
    cpSpaceAddStaticShape(_space, shape2);

    // right
    shape3 = cpSegmentShapeNew(edge, cpv(size.width, 0.0f), cpv(size.width, size.height), 0.0f);
    shape3->u = 0.1f;
    shape3->e = 0.7f;
    cpSpaceAddStaticShape(_space, shape3);

    // bottom
    shape4 = cpSegmentShapeNew(edge, cpv(0.0f, size.height), cpv(size.width, size.height), 0.0f);
    shape4->u = 0.1f;
    shape4->e = 0.7f;
    cpSpaceAddStaticShape(_space, shape4);

如果球触球像这个碰撞后球一样接触底部形状,但底部形状被移除并显示绿线,我希望这样做,但我不知道如何从身体上移除形状。欢迎任何人提出建议。

4

2 回答 2

0

所以三件事。

1) cpSpace[Add|Remove]StaticShape() 函数已弃用,您应该改用 cpSpace[Add|Remove]Shape() 函数。

2)正如最后一个答案所述, cpSpaceAddShape() 将向空间添加形状。如果要删除它,请调用 cpSpaceRemoveShape()。真的没有什么比这更重要的了。

3)Chipmunk 不做任何图形,所以如果你想画一条绿线,你需要使用你的图形或渲染库提供的任何功能。

于 2013-07-29T15:02:24.830 回答
-1
cpSpaceRemoveStaticShape(_space, shape4);
于 2013-07-29T14:15:22.533 回答