ここでは、ぼやけた円と加算合成をつかって、発光体を表現してみます。
|
|
screen.clearColor = .darkGrey
で背景を暗灰色にします。
for
で80個の加算合成のぼやけた縁PGAddBlurryCircle()
を書きます。
- 初期設定のコードを書きます。
.color( .random )
- 色。ランダムを設定します。
.position( screen.randomPoint )
- 位置。画面内のランダム座標を設定します。
.scale( square:100.0 )
- 大きさ。100.0ポイントを設定します。
.deltaScale( dw:0.5, dy:0.5 )
- 毎フレーム、0.5ポイント拡大します。
.alpha( 0 )
- アルファ。透明から開始します。
.life( .random )
- ライフ。0.0~1.0のランダムから開始します。
.deltaLife( -0.003 )
- 毎フレーム、lifeを0.003減少します。
.iterate{ }
を用意して、毎フレームのalphaの処理を計算します。.alpha( sin( $0.life * Float.pi ) )
- lifeに合わせたサイン値です。
上記の計算で、.life
=1.0で透明、0.5のときにもっとも濃くなり、0.0で透明に戻ります。
.completion{ }
を用意して、図形を再利用します。.color( .random )
- 色をランダムに再設定します。
.position( screen.randomPoint )
- 画面内のランダム座標に再配置します。
.scale( square:100 )
- 大きさを縦横100ポイントに戻します。
.life( 1.0 )
- ライフを1.0に回復します。
.alpha( 0 )
- アルファを透明に戻します。
- 「コードを実行」を押します。
目標
- ゆったり発光体が動くエフェクトが表示されたら成功です。
- Note:
sin()
は、ラジアン値を渡すとサインの値を返します。 - sin( 0 ) = 0.0
- sin( 0.5π ) = 1.0
- sin( 1.0π ) = 0.0