我要实现的目标是使对象(实体)的形状与纹理完全一样,以便将来仅可以单击纹理(而不是透明层)。
let fireLayer = SKSpriteNode(imageNamed: fireImage)
fireLayer.anchorPoint = CGPointMake(1, 0)
fireLayer.position = CGPointMake(size.width, 0)
fireLayer.zPosition = Layer.Z4st
var firedown = SKAction.moveToY(-200, duration: 0)
var fireup1 = SKAction.moveToY(10, duration: 1.2)
var fireup2 = SKAction.moveToY(0, duration: 0.2)
在这里,我试图创建实体以从节点中“切出”所需的对象。
fireLayer.physicsBody = SKPhysicsBody(texture: fireLayer, size: fireLayer.texture!.size())
现在,这里出现错误“调用中的额外参数'size'” ...尽管SKPhysicalBody有两个参数:纹理和尺寸。
fireLayer.name = "fireNode"
fireLayer.runAction(SKAction.sequence([firedown, wait1, fireup1, fireup2]))
addChild(fireLayer)
我做错了什么?先感谢您!
此错误有误导性。您的问题实际上是第一个参数texture: fireLayer
。您需要设置一个,SKTexture
而不是一个SKSpriteNode
。
另外,您还应该更改初始化SKSpriteNode的方式并添加SKTexture:
let fireLayerTexture = SKTexture(imageNamed: fireImage)
然后:
let fireLayer = SKSpriteNode(texture: fireLayerTexture)
完成该操作后,您可以SKPhysicsBody
像这样初始化:
fireLayer.physicsBody = SKPhysicsBody(texture: fireLayerTexture, size: fireLayer.texture!.size())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句