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

Swiftで遊ぼう! on Hatena

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

Swiftで遊ぼう! - 773 - まだまだ理解できないことが多いです(T_T)

explosionTexturesというSKTextureクラスの集合体(アレー)を用意したらパラパラ漫画のように実行するだけと思いきや、実行するのに色々設定があります(T_T)

tossBeaker(strength: CGVector) メソッドの中に実装していきます。元々あるboomプロパティを以下のように変更します。

まずアニメーションの設定です。

 let animate = SKAction.animate(with: explosionTextures, 
                timePerFrame: 0.056)

animateクラスでアニメーションの設定です9枚のイメージを0.056秒間隔、0.5秒で実行されます。

let expandContractCloud = SKAction.sequence([expandCloud, 
                                             contractCloud])

この設定で、expandCloudアクションとcontactCloudアクションを連続して実行されます。このアクションは以前のままです。スケール変更の設定です。2.5秒で3.5倍に拡大と、2.5秒で消えて無くなるアクションの組み合わせを設定します。

let animateCloud = SKAction.group([animate, expandContractCloud])

groupメソッドは複数のアクションを同時に実行させます。animateは0.5秒で9枚のイメージをパラパラ漫画のように表現して、expandCOntactColudは0.5秒で拡大と縮小が生じます。

let boom = SKAction.sequence([fuse, animateCloud, removeBeaker])

そしてActionの組み合わせを実行させるアクションを作りあげてrunさせるんです。

ここでランさせるとちゃんと爆発します。

しかし、removeBeakerのタイミングやたら遅いんです。爆発が生じてもビーカーが残っていて1秒後ぐらいに消えます。

何が悪いんだろう?

分からない...