水と砂の違いは何でしょうか?

 


同じ粒子ですが、簡単には粒子の大きさと摩擦抵抗が違います。

 

 


このプログラムでは、キャラクタージェネレーターで適当に作った敵を撃つと水や砂の粒子に変化します。

 

 

プログラム的にはキャタクターを管理するパーティクルとビット粒子を処理するプレーンを別管理しています。

 

 

処理は簡単で、当たり判定で敵と弾がヒットした場合、敵のスプライトのメモリを粒子メモリに転送しているだけです。

 

 

粒子の移動処理は砂なら真下、右斜め下、左斜め下をチェックして空白ならビットを移動します。水の場合はさらに真横にも移動チェックするだけです。応用すると煙や炎といった他の動きも処理できます。

 

 


パーティクルの粒子処理としてよくある古典的なアルゴリズムですが、ゲームの映像効果に利用すると面白いかもしれません。