SpriteKit SKCropNode裁剪错误的区域

时间:2018-02-03 11:44:52

标签: ios swift sprite-kit skcropnode

我正在使用SpriteKit绘制图表(能够放大和平移)。

当我使用SKCropNode裁剪图表的网格时,它不会裁剪所需的区域。无论我使用矩形SKShapeNode还是SKSpriteNode(带图片)作为.maskNode,它都会减少裁剪。

这是我的代码:

    //GRID
    let grid = SKCropNode()
    graphViewModel.graphScene.addChild(grid)

    let ratio:CGFloat = 1000 / 500
    let width = (graphViewModel.sceneSize.width*0.95)
    let newSize = CGSize(width: width, height: width/ratio)

    let origin = CGPoint(x: -newSize.width/2.0, y: 0.0)
    let rectangularMask = SKShapeNode(rect: CGRect(origin: origin, size: newSize))
    rectangularMask.fillColor = UIColor.lightGray
    rectangularMask.zPosition = -10.0 //So it appears behind the grid, doesn't affect the cropping
    grid.maskNode = rectangularMask
    graphViewModel.graphScene.addChild(rectangularMask)

这里有两个屏幕截图来说明我的意思:

这是没有裁剪网格的图表。 Graph Grid not cropped

这是设置了maskNode的图表。 lightGray区域是实际的rectangularNode,并且网格被切断的数量远远少于它应该被切断的数量。 Graph Grid cropped but wrongly

我的场景是缩放的,所以我可以放大而不像素化。 当我禁用缩放(将场景的大小设置为视图的大小)时,错误消失。不幸的是,我需要缩放而不需要任何像素伪影。

也许有人知道如何解决这个问题。它也可能是一个SpriteKit Bug。

0 个答案:

没有答案