我有一架飛機的SKSpriteNode
。以下是圖像(300像素x 83px):SKPhysicsBody看起來太大了
的圖像被命名爲[email protected]
在我的Xcode項目。
現在我加入了物理體飛機:
CGFloat offsetX = self.size.width * self.anchorPoint.x;
CGFloat offsetY = self.size.height * self.anchorPoint.y;
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 24 - offsetX, 124 - offsetY);
CGPathAddLineToPoint(path, NULL, 24 - offsetX, 47 - offsetY);
CGPathAddLineToPoint(path, NULL, 339 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(path, NULL, 401 - offsetX, 3 - offsetY);
CGPathAddLineToPoint(path, NULL, 452 - offsetX, 52 - offsetY);
CGPathAddLineToPoint(path, NULL, 411 - offsetX, 78 - offsetY);
CGPathAddLineToPoint(path, NULL, 295 - offsetX, 78 - offsetY);
CGPathAddLineToPoint(path, NULL, 268 - offsetX, 93 - offsetY);
CGPathAddLineToPoint(path, NULL, 95 - offsetX, 78 - offsetY);
CGPathAddLineToPoint(path, NULL, 62 - offsetX, 124 - offsetY);
CGPathCloseSubpath(path);
self.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];
CGPath
由SKPhysicsBody Path Generator
產生要調試飛機的物理身體,我增加了一個SKShapeNode
具有相同CGPath
爲物理實體:
SKShapeNode *shape = [[SKShapeNode alloc] init];
shape.path = path;
shape.strokeColor = [SKColor colorWithRed:1.0 green:0 blue:0 alpha:0.5];
[self addChild:shape];
這裏是結果:
我做錯了什麼?
PS:注意到一件有趣的事情。如果我指定CGPath
如下:
CGPathMoveToPoint(path, NULL, 24/3.0 - offsetX, 124/3.0 - offsetY);
CGPathAddLineToPoint(path, NULL, 24/3.0 - offsetX, 47/3.0 - offsetY);
形狀很適合飛機!
您是否使用圖像的@ 2x版本創建了具有生成器的形狀?嘗試使用「@ 2x」圖片並確保設置了Retina複選框。通常嘗試不同的變化以查看Retina和非Retina設備上的外觀。雖然形狀看起來不像2倍縮放,更像是3倍或4倍。 – LearnCocos2D
我正在使用我附加的圖像。相同的圖像發送到Xcode項目。形狀看起來像3倍縮放。 –