セルの位置をシーンの座標に変換したい。現在、セルは非表示ノードの子です。細胞がウイルスと接触すると、細胞の位置を取得します。紛らわしいことに、セルの位置は、座標がシーンに変換されるときだけでなく、その親に対する座標でも同じです。位置は (0,0.002) ですが、実際の位置は (0,50) である必要があります。
セルノードを直接参照して位置を監視すると(例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)
}
}