我试图做一个基本的雷达,我有一个三角形的精灵。我希望它从顶点旋转,所以我将锚点设置为(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 - > Green,RadarSprite-> Blue,我希望它旋转的点 - >红点,旋转角度 - >红色箭头)
所以,问题是,我该怎么做才能解决这个问题? 非常感谢您提前