【问题标题】:Create a cpShape from a CGRect in cocos2d and chipmunk从 cocos2d 和花栗鼠中的 CGRect 创建一个 cpShape
【发布时间】:2011-11-04 19:55:46
【问题描述】:

我不知道如何创建适合 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 ?

【问题讨论】:

  • 问题还没有解决,还是您的编辑解决了问题?如果是这样,您应该将解决方案作为答案发布,而不是在您的问题中进行编辑。
  • 要回答我不得不等待 8 小时。这就是我编辑的原因
  • 啊,我不知道。我将答案部分移至答案。

标签: cocos2d-iphone shape chipmunk cgrect


【解决方案1】:

代表user251552回答

好的,我想通了:

//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);

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多