我使用下面的代码进行碰撞检测。但是当CCParallaxNode继续无限滚动时。我的立场出错了。 我已经尝试了所有可能的解决方案。但是一切都给了我错误的视差值。
for (CCSprite *sp in PathsArray) {
if (sp.tag==500) {
CGPoint sprect=[self convertToWorldSpace:sp.position];
CGRect pillerRect=CGRectMake(sprect.x, sprect.y, sp.boundingBox.size.width, sp.boundingBox.size.height);
CGRect heroRect=CGRectMake(charcterObject.boundingBox.origin.x, charcterObject.boundingBox.origin.y, charcterObject.sp4.boundingBox.size.width, charcterObject.sp4.boundingBox.size.height);
if (CGRectIntersectsRect(heroRect, pillerRect)) {
[self stopJumping];
}
}
}
答案 0 :(得分:1)
为此,两个矩形必须在同一个坐标系中。您可能应该获得* sp的位置
CGPoint sprect=[sp.parent convertToWorldSpace:sp.position];
因为sp.position在父坐标系中。