尽管横向模式中的值相同,但垂直和水平线的绘制方式也不同

时间:2014-01-22 03:35:49

标签: line draw sprite-kit

我需要在Sprite Kit中绘制一个水平和垂直线条的网格。在纵向模式下,一切都按预期工作。我不知道为什么,但在横向模式下,垂直线之间的空间大于水平线之间的空间。除此之外,垂直线比水平线粗。这是我绘制两条线的方法,每条线都是水平线和垂直线:

CGMutablePathRef path= CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 100.0, 0.0);
CGPathAddLineToPoint(path, NULL, 100.0, 300.0);

SKShapeNode *line = [SKShapeNode node];
line.path = path;
line.strokeColor=[SKColor greenColor];
[self addChild:line];

CGMutablePathRef path2= CGPathCreateMutable();
CGPathMoveToPoint(path2, NULL, 0.0, 100.0);
CGPathAddLineToPoint(path2, NULL, 300.0, 100.0);

SKShapeNode *line2 = [SKShapeNode node];
line2.path = path2;
line2.strokeColor=[SKColor blueColor];
[self addChild:line2];

以下是我在纵向模式下获得的内容:Here's what I get in portrait mode

这是我在横向模式中获得的那个:And Here's the one I get in landscape mode

如您所见,在纵向模式下,左下角有一个正方形,这意味着水平和垂直线与原点的距离相同。但在横向模式下,情况并非如此,您可以在左下角看到一个矩形。

我还没能在真实设备上测试它。

1 个答案:

答案 0 :(得分:1)

您似乎需要更改scene.scaleMode以使用SKSceneScaleModeAspectFill。

   SKSceneScaleModeFill,
   SKSceneScaleModeAspectFill,
   SKSceneScaleModeAspectFit,
   SKSceneScaleModeResizeFill