Я хочу преобразовать позицию ячейки в координаты сцены. В настоящее время клетка является дочерним элементом невидимого узла. Когда ячейка вступает в контакт с вирусом, я получаю позицию ячейки. Смутно, позиция ячейки одинакова в своих координатах относительно ее родителя, а также когда координаты преобразуются в сцену. Положение читается (0,0.002), но его фактическое положение должно быть (0,50).SpriteKit - Преобразование координат точки в сцену дает неправильное значение
Если я контролирую позицию, ссылаясь непосредственно на узел ячейки (например, childNodeWithName("cell")
), он показывает правильное положение. Я изначально предполагал, что проблема связана с кастингом вниз, но с или без него позиция показывает неверно. Почему это так?
func didBeginContact(contact: SKPhysicsContact) {
let bodyA = contact.bodyA
let bodyB = contact.bodyB
if bodyA.categoryBitMask & PhysicsCategory.Virus != 0
&& bodyB.categoryBitMask & PhysicsCategory.Cell != 0 {
let virus = bodyA.node as! VirusNode
virus.attachedCell = bodyB.node as? CellNode
print(self.convertPoint(virus.attachedCell!.position, toNode: self)) //outputs (0,0.002)
}
}
Можете ли вы показать нам код для конвертации, пожалуйста? – ThrowingSpoon
convertPoint - метод SpriteKit. Я отредактирую его в self.convertPoint(), чтобы уточнить – kag359six
Да, у меня было ощущение, что это может быть на самом деле. Сейчас я в Windows. Я посмотрю, смогу ли я поехать позже. – ThrowingSpoon