Swift:将SKShapeNode转换为SKSpriteNode - > 没有纹理

5

我正在尝试通过将SKShapeNode先转换为纹理来将其转换为Sprite节点。然而结果是看不见的精灵。物理体通常存在,但没有显示任何图形。我想这可能是我尝试转换SKShapeNode的方式有问题,但我想不出具体出在哪里。你能感受到哪里出了问题吗?非常感谢帮助!

let createdShape = SKShapeNode(path: path)
createdShape.physicsBody = SKPhysicsBody(edgeLoopFromPath: createdShape.path)
createdShape.physicsBody?.categoryBitMask = PhysicsCategory.Shape
createdShape.physicsBody?.contactTestBitMask = PhysicsCategory.None      
createdShape.name = "paintedArea"
createdShape.strokeColor = shapeBorderColor
createdShape.lineWidth = 5.0
createdShape.fillColor = shapeFillColor
createdShape.alpha = 1.0
createdShape.zPosition = shapeZPosition
let texture = view?.textureFromNode(createdShape)
println(texture?.description)                      
let sprite = SKSpriteNode(texture: texture)
sprite.physicsBody = createdShape.physicsBody
sprite.position = createdShape.position
sprite.color = UIColor.blueColor()
self.addChild(sprite)

你的 ShapeNode 是可见的吗?我看到你使用路径来初始化它。如果将 ShapeNode 添加到视图中,它是可见的吗? - Christian
是的,如果我将shapenode添加到视图中,它可以正常工作。 - user3673836
@user3673836 听起来你已经自己解决了这个问题。你可能想要添加答案以供其他人学习,我会删除我的回答,因为它不能解决问题 =) - Skyler Lauren
1个回答

0
啊哈!我懂了!我的 z 位置错了!创建的形状在我的背景图像上方,但是新创建的精灵不在上面。我太蠢了...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接