Ios 使用多个SKSPRITENODE初始化SKNode
我正在制作一个游戏,其中角色有健康栏。我做了一些快速的研究,发现子类化一个SKNode并分别为角色和健康栏添加SKSpriteNode成员是一个很好的方法。所以现在我有这个,Ios 使用多个SKSPRITENODE初始化SKNode,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我正在制作一个游戏,其中角色有健康栏。我做了一些快速的研究,发现子类化一个SKNode并分别为角色和健康栏添加SKSpriteNode成员是一个很好的方法。所以现在我有这个, class GameCharacter: SKNode { let characterBody = SKSpriteNode() let characterHealthBar = SKSpriteNode() } 但是,我不知道如何初始化它,以便两个精灵节点都出现。实际上,我想要的是上面的角色身体和下面的健康栏
class GameCharacter: SKNode {
let characterBody = SKSpriteNode()
let characterHealthBar = SKSpriteNode()
}
但是,我不知道如何初始化它,以便两个精灵节点都出现。实际上,我想要的是上面的角色身体和下面的健康栏
我知道这是SKSpriteNode使用大小和纹理初始化的init方法:
override init() {
let texture = SKTexture(imageNamed: "CharacterStanding.png")
super.init(texture: texture, color: UIColor.clearColor(), size: texture.size())
}
SKNode是否有类似的init方法?或者在SKNode中初始化两个skspritenode,然后在游戏场景中创建一个新的GameCharacter对象就足够了吗
或者我猜我想问的是;如何初始化此GameCharacter(SKNode)对象并同时显示角色和健康栏?到目前为止,我找到了一个解决方案: 在init方法中,只需执行以下操作:
override init() {
super.init()
self.addChild(characterBody)
characterHealthBar.position =
CGPoint(x: characterBody.position.x, y: characterBody.position.y - 45)
self.addChild(characterHealthBar)
}
这将使用角色和他/她的下方的健康栏初始化节点如果您在sprite kit中遇到z索引问题,通常是由于系统使用
ignoresSiblingOrder=true
进行优化造成的,您可以在每个节点中手动处理此定义的z位置
更多关于