2013-07-29 71 views
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); 

如果球碰底形状Ball touch这样after collosion 球上去但底部形状删除,并显示希望我做的绿线,但我不知道如何从身体中去除形状。任何人的建议,欢迎。

回答

-1
cpSpaceRemoveStaticShape(_space, shape4); 
+0

这是一个答案。这可能奏效了,但没有解释它是什么,它根本就不是一个好答案。包含解释时将删除-1。 – Popeye

0

所以三件事。

1)不推荐使用cpSpace [Add | Remove] StaticShape()函数,而应该使用cpSpace [Add | Remove] Shape()函数。

2)作为最后一个答案,cpSpaceAddShape()将一个形状添加到空间。如果你想删除它,你可以调用cpSpaceRemoveShape()。没有比这更多的东西了。 3)Chipmunk不会做任何图形,所以如果你想画一条绿线,你需要使用你的图形或渲染库提供的任何功能。