SKNodeのサブクラスは下の13個です。
それぞれ調べていきます。
- SK3DNode
- SKAudioNode
- SKCameraNode
- SKCropNode
- SKEffectNode
- SKEmitterNode
- SKFieldNode
- SKLabelNode
- SKLightNode
- SKReferenceNode
- SKShapeNode
- SKSpriteNode
- SKVideoNode
SK3DNode
3Dゲーム用フレームワークのSceneKitで使われるNodeです。
SKAudioNode
iOS9から追加されたNodeです。
下のようにSceneに追加する事で曲を流す事ができます。
addChild(SKAudioNode(fileNamed: "music.mp3"))
試していないのですが下のようにURL指定でも曲を流す事ができるようです。
addChild(SKAudioNode(URL: NSURL(string: "url")!))
SKCameraNode
こちらもiOS9から使えるようになったクラスです。
SKSceneのcameraプロパティーと関係ありそうなのですが、良く分かりませんでした。
SKCropNode
サブノードに対してマスクをかける事ができるNodeです。
下のようにmaskNode
にSKNodeをセットする事でマスクをかけます。
let myLabel = SKLabelNode(fontNamed:"Chalkduster") myLabel.text = "Hello, World!"; myLabel.fontSize = 45; myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)); let node = SKCropNode() node.maskNode = SKSpriteNode(color: UIColor.blackColor(), size: CGSize(width: 400, height: 400)) node.addChild(myLabel) addChild(node)
SKEffectNode
サブノードに対してフィルターをかける事ができるNodeです。
下のようにCISepiaTone
のフィルターをかければ画像がセピア色になります。
余談ですが、SKSceneはSKEffectNodeのサブクラスになります。
let node = SKEffectNode() node.filter = CIFilter(name: "CISepiaTone") addChild(node) let sprite = SKSpriteNode(imageNamed:"Spaceship") node.addChild(sprite)
SKEmitterNode
パーティクル(爆発や炎などのアニメーション)を画面に表示する為に使います。
let node = SKEmitterNode(fileNamed: "MyParticle")! addChild(node)
SKFieldNode
Sceneに場を追加できるNodeです。
詳しくは以前の記事をご参照下さい。
SKLabelNode
画面にテキストを表示するNodeです。
let myLabel = SKLabelNode(fontNamed:"Chalkduster") myLabel.text = "Hello, World!" myLabel.fontSize = 45 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) self.addChild(myLabel)
SKLightNode
SKSpriteNode
に対して光を当てる事ができるNodeです。
近くにある物体は明るく、遠くにある物体は暗くなります。
let node = SKLightNode() addChild(node)
SKLightNode
の効果を与えたいNodeにはlightingBitMask
を設定します。
let sprite = SKSpriteNode(imageNamed:"Spaceship") sprite.lightingBitMask = 1
SKReferenceNode
iOS9から追加されたNodeです。
調べたのですが良く分かりませんでした。
SKShapeNode
図形を表すNodeです。
線の色や太さを指定したり角丸にする事ができます。
let node = SKShapeNode(rect: CGRect(x: 100, y: 100, width: 100, height: 100), cornerRadius: 10) node.fillColor = UIColor.whiteColor() node.strokeColor = UIColor.darkGrayColor() addChild(node)
SKSpriteNode
画像・テクスチャを表示するNodeです。
色指定で表示する事もできます。
let sprite = SKSpriteNode(imageNamed:"Spaceship") addChild(sprite)
SKVideoNode
ビデオを再生するNodeです。
下のようにすれば動画を再生できるはずなのですが自分の使い方がうまくないのか音楽しか流れませんでした。
let node = SKVideoNode(fileNamed: "movie.mp4") addChild(node)