そしてこちらは、現在地点
2ntブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

納得出来ないなら
自分で分かるまでスクリプトを精査すればいいんじゃないかな
ってことで弾幕のスクリプト理解方法の自分なりのメモ
長くなるので追記で
wx=600.0:wy=600.0
screen 0,wx,wy,0
color 255,255,255:boxf
size=5.0;弾の大きさ
num_bh=80;発射する弾幕のループ回数
num_bw=5;発射する弾幕のway数
ddim bullet_vx,num_bh,num_bw
ddim bullet_vy,num_bh,num_bw
ddim bullet_x,num_bh,num_bw
ddim bullet_y,num_bh,num_bw
dim bullet,num_bh
dim bullet_j,num_bh
randomize
/*
一連の流れ
1配列バレットを時間経過で1にする
2配列バレットが1になったものから順に、配列バレットジャッジに1を加え続ける
3配列バレットジャッジが1ならば、配列vx、vyを速度として弾幕に与える
4配列x,yに速度を加え、それを弾幕の座標として描画を行う
5バレットジャッジが80を超えたら0にする
*/
/*
2 Nway弾の発射方法
1 配列バレットを時間経過で1にする
2 配列バレットが1になったものから順に、配列バレットジャッジに1を加え続ける
※弾幕はN方向に分岐するために、配列バレットジャッジは2次元配列になる
3 配列バレットジャッジが1ならば、配列vx,vyを速度として弾幕に加える
※同様に配列vx,vyとx座標y座標も二次元配列になる
*/
//ここから記述します

;注意!リピート?ループ構文の時に一段落下げます!
col=0
count=0
pi=0.0
repeat ;最後までのリピート?ループ構文,ここだけ段落下げない
que=0;二重ループ時のcntの代用の変数
pi+=1.0
col+=17
col|col\256
count+=1
count=count\10
if (count=0):{
repeat num_bh,0;リピート1
if bullet(cnt)=0:{
bullet(cnt)=1
break
}
loop;ループ1
}
repeat num_bh,0;リピート2
if bullet(cnt)=1:{;配列バレットの存在フラグが1ならば
if bullet_j(cnt)=0:{;弾幕に速度と座標が与えられていないのならば
repeat num_bw,0;リピート2-1
bullet_vx(que,cnt)=0.0
bullet_vy(que,cnt)=0.0
bullet_x(que,cnt)=wx/2.0
bullet_y(que,cnt)=wy/2.0
loop;ループ2-1
}
bullet_j(cnt)+=1
}
if bullet_j(cnt)>79:{
bullet_j(cnt)=0
bullet(cnt)=0
}

que+=1
loop;ループ2
que=0

repeat num_bh,0;リピート3
repeat num_bw,1;リピート3-1
bullet_vx(que,cnt-1)+=cos(pi/314.0+1.256*cnt)*0.2
bullet_vy(que,cnt-1)+=sin(pi/314.0+1.256*cnt)*0.2
bullet_x(que,cnt-1)+=bullet_vx(que,cnt-1)
bullet_y(que,cnt-1)+=bullet_vy(que,cnt-1)
loop;ループ3-1
que+=1
loop;ループ3

que=0
redraw 0
color 255,255,255:boxf
repeat num_bh,0;リピート4
repeat num_bw,0;リピート4-1
color (col*3)\256,(col*7)\256,(col*11)\256
if bullet(que)=1:circle bullet_x(que,cnt)-size,bullet_y(que,cnt)-size,bullet_x(que,cnt)+size,bullet_y(que,cnt)+size
loop;ループ4-1
que+=1
loop;ループ4
redraw 1
await 10


loop

5wayの弾幕(時計回り)
リピート3-1の中の1.256の部分の値で弾幕の発射角度が変わります
num_bwは一般化してあるので増やせばway数が増えます
ただ、way数を増やしたいときには1.256の値をπ/num_bwの近似値にしておくと綺麗に仕上がります
次はマウス追従とかやりたいなー

もし必要なら自分なりの解説入れますんでコメでも入れてもらえれば
まあ見てる人殆ど居らんけどな
最適化ができてないのはご愛嬌

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR