【问题标题】:Chipmunk: How to remove shape and body?花栗鼠:如何去除形状和身体?
【发布时间】:2010-07-25 07:01:14
【问题描述】:

首先,对不起我的英语,我不是美国人。我的问题是如何从空间中移除形状和身体,这与碰撞检测无关。我试图通过触摸事件来做到这一点,特别是我试图清除一个球触摸它(我在空间中有很多球),但我不知道该怎么做,我一直在寻找互联网和找不到任何关于如何做的帮助,所有这些都与碰撞有关,这不是我需要的。

我多次阅读文档,但没有包含任何有用的信息如何做到这一点。只有如何用碰撞删除。我知道如何用碰撞删除:

static void postStepRemove (cpSpace *space, cpShape *shape, void *data) {

//Remove the shape and body
cpSpaceRemoveBody(space, shape->body);
cpBodyFree(shape->body);
cpSpaceRemoveShape(space, shape);
cpShapeFree(shape);

}

静态整数碰撞(cpArbiter *arb, cpSpace *space, void *data){

     cpShape *a, *b;

 cpArbiterGetShapes(arb, &a, &b);

    cpSpaceAddPostStepCallback(space, (cpPostStepFunc)postStepRemove, a, nil);
    cpSpaceAddPostStepCallback(space, (cpPostStepFunc)postStepRemove, b, nil);
    return 0;
}
return 1;

}

我在碰撞时使用它,但我需要一些没有碰撞的例子。

【问题讨论】:

    标签: iphone cocos2d-iphone physics chipmunk


    【解决方案1】:

    找到库文档并阅读该死的手册:Chipmunk physics documentation

    cpBodyFreecpShapeFree 似乎是您需要的 API 调用。 Cocos2d 在调用它们时可能有一些绑定。如果您需要了解有关这些调用的更多信息,请查找 Cocos2D 文档。

    【讨论】:

    • 是的,我知道,但我阅读了很多次文档,但没有包含任何有用的信息如何做到这一点。只有如何用碰撞删除。
    • 另外,当 cpSpaceStep 运行时,我无法删除形状和主体。我需要删除后步骤,但我不知道该怎么做。
    • 只需为您将在 cpSpaceStep 完成后移除的形状创建一个集合。 dropped_shapes.add(shape),然后在 cpSpaceStep 完成后释放添加到该集合中的每个形状。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多