我有一个用SpriteKit设计的游戏,它严重依赖于1 SKShapeNode (这是一条线)。我是这样说的:
if let path = createPathToMove() {
let shapeNode = SKShapeNode()
shapeNode.path = path
shapeNode.name = "line"
shapeNode.strokeColor = UIColor.blackColor()
shapeNode.lineWidth = 20
shapeNode.zPosition = 5
shapeNode.antialiased = false
shapeNode.lineCap = kCGLineCapRound
self.world!.addChild(shapeNode)
}不幸的是,由于这是作为调试特性(Sprite-kit绘图)设计的,所以它没有针对我正在做的事情进行优化,更大的问题是行有工件(因为它的线宽大于2)。那些看起来像这样:http://i.stack.imgur.com/ccQ1s.png
考虑到这一点,我已经推断出使用Sprite的SKShapeNode对我来说不是一个选择,除非有人知道如何解决所提到的问题。我已经了解了cocos2d,但是这似乎有点过火了(只对一个CCDrawNode使用整个库)。是否有任何开源/公共扩展的SKShapeNode (和快速),以改善绘图功能?要修复的最重要的事情是工件(节点中的白点/线)。如果没有公开的东西,Cocos2d是我最好的选择吗?
发布于 2015-07-12 00:36:36
虽然这篇文章有点老了,但我想我还是自己回答吧,以防其他人也有同样的问题。
基本上,要删除行中的工件,您需要将线宽设置为小于2.0的大小(无论出于什么原因,当它小于此大小时不会出现工件)。在设置线宽之后,您将希望按如下方式扩大SKNode:
node.xScale = 10
node.yScale = 10这将使行看起来比原来的要厚得多,而且行中没有工件。
您可能还必须将“反别名”属性设置为false,否则行将显示为非常模糊。
https://stackoverflow.com/questions/31060426
复制相似问题