2015-06-28 2 views
0

Я пытаюсь сделать число, появляющееся в середине SKShapeNode. Однако по какой-то причине, когда я добавляю SKLabelNode в качестве дочернего элемента узла формы, он не появляется, несмотря на то, что SKShapeNode появляется. Я добавил тот же ярлык, что и ребенок SKScene, и он появился просто отлично. Вот код для пользовательского класса:Пользователь SKShapeNode Ребенок не отображается

class Dot: SKShapeNode { 
    var numLabel = SKLabelNode(fontNamed: "MarkerFelt-Wide") 
    func setNumber(i: Int) { 
     numLabel.text = String(i) 
     numLabel.fontColor = UIColor.whiteColor() 
     numLabel.fontSize = 200 
     numLabel.setScale(numLabel.frame.width/self.frame.width/2) 
     numLabel.position = CGPointMake(self.frame.midX ,self.frame.midY) 
     self.addChild(numLabel) 
    } 
} 

dot.setNumber(1) я называю, но ничего не происходит. Пожалуйста, дайте мне знать, если вы найдете вопрос. Благодаря!

ответ

1

После долгих проб и ошибок, reteaching себя как SKNodes работать по-другому, чем UIViews, я думаю, что причина вашей проблемы заключается в следующем: .position свойство в комплекте спрайтов не позиция угла узла, но центр из этого. Кроме того, при установке SKNode в качестве ребенка другого SKNode его позиция основана на его родительском, а не на сцене. Таким образом, вместо установки numLabel к midX и midY это должно скорее быть:

numLabel.position = CGPointMake(0, 0) 

Однако, по какой-то причине значение y все еще не правильно, по крайней мере, в коде, который я использую. Возможно, это связано с тем, что вы масштабируете numLabel. Поэтому я как-то исправил его с кодом:

numLabel.position = CGPointMake(0, -(numLabel.frame.height/2)) 

Все еще, это не идеально.

С этой новой информацией, если вы все еще не можете понять это, я буду смотреть дальше, чтобы получить точное положение. Но имейте в виду мой ответ в начале этого поста.

+0

Не знаете, почему такое позиционирование. Для меня это выглядит слегка отцентрированным, но для целей тестирования это нормально. Спасибо, что проверили это! Я обязательно буду замешан в позиции, чтобы узнать, смогу ли я точно определить, как ее центрировать (если ее еще нет). – Kendel

Смежные вопросы