Я разрабатываю игру, в которой у вас есть персонаж.Персонаж является подклассом SKSpriteNode:
class Character: SKSpriteNode {
init() {
let texture = SKTexture(imageNamed: "character")
super.init(texture: texture, color: UIColor.white, size: texture.size())
self.isUserInteractionEnabled = true
self.zPosition = 10
self.position = CGPoint(x: 0, y: 0)
self.name = "character"
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("Touch!")
// Create small +1 sprite
let plusNode = SKSpriteNode(imageNamed: "plus1Node")
plusNode.zPosition = 10000 //To make sure its always in front
plusNode.position = self.position
self.addChild(plusNode)
}
Персонаж добавляется в игру через GameScene.swift:
func spawnCharacter() {
//Random postion for the pigs
let randomX = Functions().randomBetweenNumbers(firstNum: -140, secondNum: 140)
let randomY = Functions().randomBetweenNumbers(firstNum: -240, secondNum: 240)
let newCharacter = Character()
newCharacter = CGPoint(x: randomX, y: randomY)
gameArea!.addChild(newCharacter)
}
Когда игрок слегка касается персонажа "+1"узел порожден, чтобы показать игроку, что он коснулся персонажа.Я хочу, чтобы этот +1 узел появлялся на вершине персонажа, но он расположен далеко - как несколько точек отсюда.
Если я переместлю код +1 в GameScene (сразу после того, как персонаж будет создан и добавлен в сцену, позиция будет точной).
Чего мне здесь не хватает?