Cocos2d iphone 从cocos2d和chipmunk中的CGRect创建cpShape

Cocos2d iphone 从cocos2d和chipmunk中的CGRect创建cpShape,cocos2d-iphone,shape,chipmunk,cgrect,Cocos2d Iphone,Shape,Chipmunk,Cgrect,我不知道如何创建适合CGRect的cpShape。以下是我迄今为止所做的尝试,但没有成功: CGPoint p1 = rect.origin; CGPoint p2 = CGPointMake(rect.origin.x + rect.size.width, rect.origin.y); CGPoint p3 = CGPointMake(rect.origin.x, rect.origin.y + rect.size.height); CGPoint p4 =

我不知道如何创建适合CGRect的cpShape。以下是我迄今为止所做的尝试,但没有成功:

    CGPoint p1 = rect.origin;
    CGPoint p2 = CGPointMake(rect.origin.x + rect.size.width, rect.origin.y);
    CGPoint p3 = CGPointMake(rect.origin.x, rect.origin.y + rect.size.height);
    CGPoint p4 = CGPointMake(rect.origin.x + rect.size.width, rect.origin.y + rect.size.height);

    int num = 4;
    CGPoint verts[] = {p2, p1, p3, p4};
    shape = cpPolyShapeNew(body, num, verts, cpvzero);
我不明白为什么这不完全适合我的CGRect

代表

好吧,我想出来了:

//Converting points in chipmunk coordinates
    CGPoint p1 = CGPointMake(-rect.size.width/2, -rect.size.height/2);
    CGPoint p2 = CGPointMake(-rect.size.width/2, +rect.size.height/2);
    CGPoint p3 = CGPointMake(+rect.size.width/2, +rect.size.height/2);
    CGPoint p4 = CGPointMake(+rect.size.width/2, -rect.size.height/2);

    int num = 4;
    CGPoint verts[] = {p1, p2, p3, p4};

    shape = cpPolyShapeNew(body, num, verts, cpvzero);

这个问题还没有解决,还是您的编辑解决了这个问题?如果是这样的话,你应该把解决方案作为一个答案,而不是在你的问题中作为一个编辑。要回答我必须等8小时。这就是我为什么伊迪达,我不知道。我把答案部分改成了答案。