我SpriteKit
用来绘制图表(具有放大和平移的能力)。
当我使用 anSKCropNode
来裁剪图形的网格时,它不会裁剪所需的区域。无论我使用矩形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 错误。