我尝试检测两个精灵之间的碰撞。
if(CGRectIntersectsRect([SpriteA BoundingBox], [SpriteB boundingBox]))
但是当我旋转任何精灵而不是碰撞检测并不完美时.. 我知道使用像素完美碰撞,但我不知道它。 请任何人帮我检查碰撞,如果有的话,给我任何代码块。
答案 0 :(得分:1)
您可以使用box2d让它为您检测所有碰撞
答案 1 :(得分:1)
你可以用两种方式做。
答案 2 :(得分:0)
你也可以引用Ray Wenderlich Tutorial来检测任何2个Box2D体之间的碰撞。
答案 3 :(得分:0)
这是可能的!试试CGPath。 我有同样的问题。我已经解决了这个教程:http://bobueland.com/cocos2d/2011/the-magic-of-cgpaths/
用于旋转路径尝试此方法,它将路径旋转到boudingBox的中心:
-(CGPathRef) rotateCGPath:(CGPathRef)path corner:(CGFloat)radians
{
CGRect bounds = CGPathGetBoundingBox(path);
CGPoint center = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds));
CGAffineTransform transf = CGAffineTransformIdentity;
transf = CGAffineTransformTranslate(transf, center.x, center.y);
transf = CGAffineTransformRotate(transf, -radians);
transf = CGAffineTransformTranslate(transf, -center.x, -center.y);
return CGPathCreateCopyByTransformingPath(path, &transf);
}
之后,您可以通过以下方式检测碰撞:
if (CGPathContainsPoint(Collisionpath, NULL, collisionPoint, NO))
{ //is inside the path }
祝你好运!