Objective c 围绕定位点旋转physicsBody

Objective c 围绕定位点旋转physicsBody,objective-c,sprite-kit,Objective C,Sprite Kit,我想做一个基本的雷达,我有一个三角形的精灵。我希望它从顶点旋转,所以我将锚点设置为0.5,1。 现在一切似乎都好了 现在我需要这个来检测碰撞,所以我给这个精灵添加了一个physicsBody,我的问题来了。 由于定位点的原因,PhysicsBody不会围绕与精灵相同的点旋转 这是我雷达上的一段代码: radar = [SKSpriteNode spriteNodeWithImageNamed:@"radar.png"]; /* Triangular path */ CGFloat offsetX

我想做一个基本的雷达,我有一个三角形的精灵。我希望它从顶点旋转,所以我将锚点设置为0.5,1。 现在一切似乎都好了

现在我需要这个来检测碰撞,所以我给这个精灵添加了一个physicsBody,我的问题来了。 由于定位点的原因,PhysicsBody不会围绕与精灵相同的点旋转

这是我雷达上的一段代码:

radar = [SKSpriteNode spriteNodeWithImageNamed:@"radar.png"];
/* Triangular path */
CGFloat offsetX = radar.frame.size.width * radar.anchorPoint.x;
CGFloat offsetY = radar.frame.size.height * radar.anchorPoint.y;
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 1 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(path, NULL, 175 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(path, NULL, 91 - offsetX, 239 - offsetY);
CGPathCloseSubpath(path);
/*end path*/
radar.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];
radar.physicsBody.dynamic = NO;
radar.anchorPoint = CGPointMake(0.5, 1);

radar.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
这是一张图片,你可以看到发生了什么。PhysicsBody->绿色,RadarSprite->蓝色,我希望它旋转的点->红点,旋转角度->红色箭头

所以,问题是,我能做些什么来解决这个问题?
非常感谢你提前提出这个问题,如果这不能解决你的问题,我建议考虑写你自己的碰撞检查方法。链接上面提到的链接,必须使用此初始值设定项+SKPhysicsBody*bodyWithRectangleOfSize:CGSizes center:CGPointCenter物理体路径中每个点的位置相对于精灵的位置。所以路径点应该是:0,0,-triangleWidth/2,-triangleWidth,triangleWidth/2,-triangleWidth,其中triangleWidth和Height是精灵的大小。谢谢大家!!最后,正如Okapi所说,调整了路径点。