cocos2d iOS - 检测与CCDrawNode边界的碰撞

时间:2014-03-29 06:30:03

标签: ios cocos2d-iphone collision-detection

我有一个CCDrawNode,它在屏幕上绘制边框。 我的精灵是在这个边框内创建的(边框没有填充颜色)。 像这样的东西


     Border
 ______________
|              | 
|   Sprite     | B
|              | o
|              | r
|      Sprite  | d
|              | e
|              | r
|              |
|           Spr|ite {-- Collision I want to achieve
|______________|

我想检测精灵何时与我的边界碰撞。 当我尝试使用CGRectIntersectsRect时,它只返回TRUE 所有4个精灵边缘都与边界碰撞。

这就是我检查碰撞的方法


- (BOOL)isCollidingWithEdges:(CCNode *)node
{

    for (CCDrawNode *edge in _edgesArray)
    {
        if (CGRectIntersectsRect([edge boundingBox], [node boundingBox]))
        {
            NSLog(@"edge collision!!!");
            return YES;
        }
    }

    return NO;
}

并定义边


    CGPoint verts[4] =
    {
        ccp(0.0f, 0.0f),
        ccp(0.0f, height),
        ccp(width, height),
        ccp(width, 0.0f)
    };

    CCDrawNode *edge = [CCDrawNode node];
    edge.anchorPoint = ccp(0.0f, 0.0f);
    edge.position = ccp(0.0f, 0.0f);
    [edge drawPolyWithVerts:verts count:4 fillColor:fillColor borderWidth:0.0f borderColor:borderColor];
    [self addChild:edge];
    [_edgesArray addObject:edge];

我很感激任何帮助 谢谢!

0 个答案:

没有答案