組み合わせてもよいですが...。123);このようにちょっと込み入ってしまうので、簡単に書ける方法が用意されています。123);四則演算をまとめておくとこんな感じ。0.5);練習:可変長配列に書き換えてみる一番はじめに固定長配列で作ったエージェント100体のランダムウォークを、可変長配列を使って書き直してみましょう。ブロックを見ていきます。初期化の際は、要素数を指定する必要がなくなります。要素を追加していきます。2);}for文で100回要素を追加しているので、それぞれの可変長配列には100体ぶんのX/Y座標が入っている状態になりますね。ブロックを見ていきます。使って既存の要素に数値を足し算していきます。取得して利用すればOKです。10);}以上で書き換えが完了しました。(→vla_agents)練習:クリックでエージェントを増やしてみるさて、ここからが可変長配列の出番です。例として、クリックしてエージェントを増やしてみましょう。使ってエージェントのX/Y座標をひとつずつ追加しましょう。y.append(mouseY);}これでエージェント1体ぶんの情報が追加されました。ブロックを見ていきます。99まで固定で繰り返しているので、せっかくクリックで配列の要素を増やしても100体ぶんしか処理されません。このfor文の終了条件を書き換えて、配列の個数が増えてもすべての要素に対して処理されるようにしましょう。取得できるので...。...}このように書けますね。(→vla_agents_append)練習:エージェントに重力を持たせてみるこのまま、エージェントに速度・加速度の概念を導入して重力をかけてみましょう。重力を忘れてしまった人は、「物理演算」の回を振り返りましょう。壁や床を設置して、エージェントがキャンバス外に出ないようにできるだろうか?練習:自然発生させてみるここまではクリックでエージェントを増やしていましたが、自然発生させてみることも可能です。ブロックに移して実行してみましょう。(→vla_agents_emitter)パーティクル練習:粒子に寿命を持たせてみる粒子に寿命を持たせて、消えるようにしてみましょう。寿命用の可変長配列をもうひとつ追加します。ブロック内で、他の可変長配列と同様に初期化しておきましょう。まで少しずつ減らしていくことにします。ブロック内で、寿命を減らす処理と、寿命が残っているときだけ粒を描くようにします。}}これで、エージェントに寿命の概念が入り、途中で消えるようになりました。(→hello)このように、粒子がたくさん集まって構成されるエフェクトを「パーティクル」と呼びます。パーティクルは、粒子の色や形状・動きを工夫することで、爆発や炎・水など、さまざまな効果を再現することができます。(emitter)」と呼びます。練習:寿命を不透明度に反映してみる先の例では寿命が尽きたとたん消えてしまうので、不自然に見えます。寿命に応じて不透明度を変化させることで、より滑らかにしてみましょう。不透明度を計算して、塗り色を調整します。...}これで、滑らかに消えていくようになりました。(→fade)寿命の尽きた粒子が増えていく...先のスケッチで、要素数をコンソールに出力して見てみましょう。ブロックに以下のコードを差し込んで実行します。要素数をコンソールに出力println(x.size());どうでしょうか?時間が経つほど増えていくのが確認できると思います。寿命が尽きて不要になった要素を削除してあげないと、for文の繰り返し回数も負荷も増え続け、動作は次第に重くなり...最終的にはプログラムが停止してしまいます。展示など長期間実行し続ける状況では死活問題です。後続の要素がある場合は、空席が出ないように詰められる=インデックスが調整されます。使って、以下のように書けば一見うまくいきそうです。}}...本当でしょうか?このコードはうまくいくこともありますが、少しだけ欠陥があります。特定の条件下—例えば寿命切れの粒子が2つ並んでいる場合など—で見落としが発生してしまうのです。/これを防ぐには、for文のインデックスの巡っていく順序を逆にします。先頭から末尾ではなく、末尾から先頭にかけて不要な要素を見ていくのです。}}(→remove)/参考:さまざまなパーティクル粒子に画像を利用する粒子に画像を利用すると、複雑な表情を手軽に出すことができます。輪郭のぼけた粒子で描くと、全体の塊感が出てまったく違った趣を受けます。色を被せることができます。透明な色を指定すれば、画像を半透明に描くこともできるので、これを利用しましょう。(→img)規則的に飛ばす規則的に飛ばすようにすると、複雑なパターンを描くことができます。発生源を動かすとまた違った表情になりますね。(→bullet)演習:パーティクルでさまざまな効果を再現してみようパーティクルの外観や動きを工夫して、さまざまな効果を再現してみましょう。