水と砂のアルゴリズム TIC-80

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


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


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

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

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

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


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