我正在使用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)
这里有两个屏幕截图来说明我的意思:
这是设置了maskNode的图表。
lightGray区域是实际的rectangularNode
,并且网格被切断的数量远远少于它应该被切断的数量。
我的场景是缩放的,所以我可以放大而不像素化。 当我禁用缩放(将场景的大小设置为视图的大小)时,错误消失。不幸的是,我需要缩放而不需要任何像素伪影。
也许有人知道如何解决这个问题。它也可能是一个SpriteKit Bug。