前ページで、 life を紹介しました。 life が0.0になった時、図形が消える前の終了処理を行えます。 .completion{ } を使ってみましょう。


  1. PGCircle() を書きます。

  2. 初期ライフとして .life( 1.0 ) を指定します。またlifeに合わせて .alpha( 1.0 ) を指定します。

  3. フレームごとの減り量として、 .deltaLife( -0.005 )deltaAlpha( -0.005 ) を指定します。

  4. .completion のブロック内で $0 と、続けて .life( 1.0 ) を指定して1.0に戻します。 アルファ値も .alpha( 1.0 ) で戻します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
func design( screen:PGScreen ) {
   PGCircle()
   .life( 1.0 )
   .deltaLife( -0.005 )
   .alpha( 1.0 )
   .deltaAlpha( -0.005 )
   .completion {
       $0
       .life( 1.0 )
       .alpha( 1.0 )
   }
}
  1. 「コードを実行」を押します。

目標

  • 円が表示されたあと、3~4秒待って円が消え、また表示されるのを繰り返したら成功です。

終わったら次のページへ進みます。


  • Note: .completioninterval同様にクロージャ関数を指定します。図形のlifeが0になった時に一度だけクロージャが実行されます。$0は呼び出している図形自身です(intevalと同様です)。ただしこのcompletion内で再度lifeが0.0より大きな値となった場合、図形は削除されないようになります。