Swiftで遊ぼう! - 758 - Sprite Kit やっとSKPhysicsJointFixed
少し複雑なSKSpriteKitのチュートリアルに取り組んでいます。
GameSceneにノードを設定するメソッドをまだ書いています(^^;)
func newProjectile () { let beaker = SKSpriteNode(imageNamed: "beaker") beaker.name = "beaker" beaker.zPosition = 5 beaker.position = CGPoint(x: 120, y: 625) let beakerBody = SKPhysicsBody(rectangleOf: CGSize(width: 40, height: 40)) beakerBody.mass = 1.0 beakerBody.categoryBitMask = PhysicsT beakerBody.collisionBitMask = PhysicsType.wall | PhysicsType.cat beaker.physicsBody = beakerBody addChild(beaker)
ここでやっと「SKPhysicsJointFixed」が出てきます。昨日説明した「addChild()」メソッドがどこ(どのSKNode)から発動されているのか分かっていないので、次に出てくる「childNode()」メソッドの発動先がどこか分かりません。「addChild()」と同じSKNodeだと思います。直感的にGameScene.sksで設定している「bk」のような気もします。GameScene.sksに設置している「player」ノードと「arm」ノードを融合させるために「childNode()」メソッドを使っているのですが、その関係性がイマイチ分かってないです(^_^;)
以下の説明をしていこうと思っていたのですが、もう少し「addChild()」と「childNod()」の関係性を勉強して出直します。
if let armBody = childNode( withName: "player")?.childNode( withName: "arm")?.physicsBody { pinBeakerToZombieArm = SKPhysicsJointFixed.joint(withBodyA: armBody, bodyB: beakerBody, anchor: CGPoint.zero) physicsWorld.add(pinBeakerToZombieArm!) beakerReady = true } }