それじゃ、ゲーム内にそのまま使うことはできないですね。
着弾して地形がえぐれるたびにgetimagepixelを桁違いに多用することになるから。

fillCircleでbuf内に入ってる画像に書き込んでからgetImagePixelで画像の色を取得
というのが、無駄が多すぎる気がする。

ただ、ゲーム開始時のステージデータ読み込みにはすごく有効だと思う。
あとは、着弾点をどうやって変形させるかさえなんとかなればいける。

というか、あらかじめgetpixelを使って配列を作っておけばいいね。