Aar*_*ron 7 cocos2d-iphone ios sprite-kit swift
我有一个用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)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于这被设计为一个调试功能(Sprite-kit绘图),它没有针对我正在做的事情进行优化,更大的问题是该行有伪影(因为它的线宽大于2).这些看起来像这样:http: //i.stack.imgur.com/ccQ1s.png
考虑到这一点,我已经推断使用Sprite-kit的SKShapeNode对我来说不是一个选项,除非有人知道如何解决上述问题.我已经研究了cocos2d,但是看起来有点矫枉过正(使用整个lib只是一个CCDrawNode).是否有SKShapeNode(和swift)的开源/公共扩展,这改善了绘图功能?要修复的最重要的是工件(节点中的白点/线).如果没有任何公开,Cocos2d是我的最佳选择吗?
虽然这篇文章有点旧,但我想我最好自己回答一下,以防其他人遇到同样的问题。
基本上,要消除线条中的伪影,您需要将线宽设置为小于 2.0 的尺寸(无论出于何种原因,当它小于此值时都不会出现伪影)。设置线宽后,您将需要像这样放大 SKNode:
node.xScale = 10
node.yScale = 10
Run Code Online (Sandbox Code Playgroud)
这将使线条看起来比实际更粗,并且线条中没有伪影。
您可能还必须将 antialiased 属性设置为 false,否则线条会显得非常模糊。
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |