dim bullet_X,1000;弾のX一座標
dim bullet_Y,1000; Y
dim bullet_angle,1000;弾の進む方向
bullet_speed=4.0;弾の進む速さ
repeat 1000;変数は少数化しておく
bullet_X(cnt)=100.0;弾の初期位置(出現位置)を(100,100)とする
bullet_Y(cnt)=100.0
loop
way=0.0
font "",12
repeat 1000
bullet_angle(cnt)=way
way+=0.15;弾と弾の間の角度
loop
repeat 500
color 0,0,0:boxf
repeat cnt*2
bullet_X(cnt)+=cos(bullet_angle(cnt))*bullet_speed
bullet_Y(cnt)+=sin(bullet_angle(cnt))*bullet_speed
color 200,200,200
circle bullet_X(cnt)-4,bullet_Y(cnt)-4,bullet_X(cnt)+4,bullet_Y(cnt)+4
loop
pos 0,0
mes cnt
redraw 1
await 20
redraw 0
loop
>>具体的にどうやったら表現できるのでしょうか?
例えば、32度の方向に弾Aを飛ばし、
つぎに、33度の方向に弾Bを飛ばし、
34度の方向に弾C…
と複数の弾をそれぞれ微妙に異なる方向へ飛ばすことで、
「螺旋状弾幕」を描画することができます。(説明下手ですみません)
重要なのは、33度や34度など、中途半端な角度あたりのXの移動量・Yの移動量を
求める必要があります。
それを求めるには「cos」「sin」を使います。
(詳しくはHSPのリファレンス参照)
上にあげたサンプルソースは画面外に消滅した(描画する必要のない弾)まで
描画しており、処理落ちなどを考慮していないですが、
cos,sinの使い方をわかってもらえれば良いです・・・。