隕石を発生させる処理
次に隕石を発生させるための処理について説明します。隕石を発生させるための処理は関数startMeteo()
で定義してあります。この関数には1つだけパラメータが渡されます。このパラメータは数値で、この数値が配列の番号に対応しています。つまり、このパラメータを参照番号として配列変数mx, my, mFlag, mOffset, mSpeedの5つに指定します。
mx, my配列にはランダムで隕石の位置を設定します。乱数はMath.random()
で発生させることができますが、発生される乱数値は0以上、1未満の小数値になります。そこで、乱数値に200などの値を掛け算します。ただ、この時点では小数値なのでMath.floor()を使って整数化します。
mOffsetやmSpeed配列変数も同様に乱数を使って指定します。mOffsetの場合は整数化はせずに小数値を利用します。小数値を加算していくことで、少しずつ隕石が動くようになるためです。
最後に隕石が出現したことを示すmFlag配列変数にtrueを設定すれば完了です。この時点では隕石の表示は行いません。隕石の表示は隕石を移動させる処理の中で行うためです。
コード03
function startMeteo(n){
mx[n] = Math.floor(Math.random() * 220) + 50; // X座標を設定
my[n] = Math.floor(Math.random() * 30) - 30; // Y座標を設定
mOffset[n] = (Math.random() - 0.5 ) / 4; // 左右の移動量(オフセット)を設定
mSpeed[n] = Math.random() * cnt + 1; // 落下速度を設定
mFlag[n] = true; // 隕石が存在することを示す
}