2008年9月10日水曜日

弾幕生成

簡単に生成できる弾幕のソースでも書いておくか、ということでここに書くことに。

生成部分:
(*it).hoge = (*it).hoge + 1;
(*it).dx = cos((*it).hoge*1.0 * a)*b;
(*it).dy = sin((*it).hoge*1.0 * a)*b;

弾の移動を書いている部分:
(*it).x = (*it).x + (*it).dx;
(*it).y = (*it).y + (*it).dy;

このとき、aに任意の数、bに移動速度を代入するのだが、aの値によって、生成される弾幕の形が変化する。

以下に、いくつか(自分が気に入っている)サンプルを書いておく。
aが1の場合:6方向に乱射しているように見える。発射角度は少しずつ変わってくる。
aが11の場合:4方向に、密度が濃いレーザー風弾幕を射出。発射角度は少しずつ変わってくる。aに-11を代入した弾幕と併用すると確実に詰む。
aが13の場合:(初心者は)意外に詰みやすい弾幕を射出。aに-13を代入した弾幕と併用すると、良い感じに隙間が出来る。但し中級者以上のレベルでないと避けにくいかも知れない。

因みに、aに負の数を代入した場合、展開される弾幕は、その負の数と絶対値が同じ正の数をaに代入した場合に展開される弾幕の発射角度の回転方向が逆になる。

0 件のコメント: