読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 765 - SKAction.run()

SKActionクラスをドキュメントで見ると山のようなメソッドに溢れています。

まずチュートリアルで使用されている「run()」メソッドを見ます。

このメソッドをドキュメントでみると次のように書かれています。

Creating Actions That Perform Actions on a Node’s Child
アクション作って、子ノードで開くちょんを実行

class func run(SKAction, onChildWithName: String)

Creates an action that runs an action on a named child object.

当然のようにrun()メソッドは引数を受け取ります。SKActionクラスと子ノードの指定ですね。チュートリアルの実際のコードを見ましょう。

let toss = SKAction.run() {
    self.physicsWorld.
        remove(self.pinBeakerToZombieArm!)
    beaker.physicsBody?.applyImpulse(strength)
    beaker.physicsBody?.applyAngularImpulse(0.1125)
    self.beakerReady = false
}

メソッドが引数を取って無いじゃないかと思わないように。「{}」を使ったクロージャーで与えられています。func applyImpulse(_ impulse: CGVector)で重力が加わり、func applyAngularImpulse(_ impulse: CGFloat)を使って角度の力が加わります。こういう物理的な動きがSKActionクラスを構成するようです。とうぜん、一度アクションが加わるとbeakerReaddyをfaleseにします。

これがrun()メソッドの中身です。しかし、画面にはまだ表示はされません。

これだけ。