我有一个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];
我很感激任何帮助 谢谢!