下記のスクリプトを実行させた際の弾幕の評価をつけてほしいです。
また、お時間がありましたらスクリプトをじっくり見て
「ここをこうしたらもっと処理速度が速くなるよ」等、アドバイスをいただければ幸いです。
//乱数の初期化 randomize //画面初期化 screen 0,500,500 //仮想画面読み込 buffer 1 color 0,0,0:boxf color 255,25,0 mes "●" color 1,0,0 mes"▲" gsel 0 //変数の宣言 frame = 0 shot_max = 500 jiki_x = 250.0 jiki_y = 250.0 ddim shot_f,shot_max ddim shot_x,shot_max ddim shot_y,shot_max ddim shot_vx,shot_max ddim shot_vy,shot_max dim shot_type,shot_max //弾の動き方:1ならば左端から、2ならば右端から弾が発射される *main redraw 0 color 255,255,255:boxf //キー入力 stick k,31 if(k&1){ jiki_x-=2.0 if(k&16):jiki_x+=1.0 } if(k&2){ jiki_y-=2.0 if(k&16):jiki_y+=1.0 } if(k&4){ jiki_x+=2.0 if(k&16):jiki_x-=1.0 } if(k&8){ jiki_y+=2.0 if(k&16):jiki_y-=1.0 } if(k&128):end //弾の発射 if(frame\4=1){ gosub*shot_search if(number!-1){ shot_f(number) = 1.0 shot_type(number) = 1 + number\2 if(shot_type(number)==1):shot_x(number) = -8.0:else:shot_x(number) = 508.0 shot_y(number) = 0.0+rnd(500) if(shot_type(number)==1):shot_vx(number) = 1.0+rnd(2):else:shot_vx(number) = (1.0+rnd(2))*(-1.0) shot_vy(number) = 0.0 } } //弾の移動 repeat shot_max shot_x(cnt)+=shot_vx(cnt) shot_y(cnt)+=shot_vy(cnt) if(shot_x(cnt)>508.0)or(shot_x(cnt)<-8.0):shot_f(cnt) = 0.0 dx = shot_x(cnt)-jiki_x : dy = shot_y(cnt)-jiki_y dx*=dx : dy*=dy if(dx+dy<36.0):end loop //自機の描画 color 0,0,0 pos jiki_x-8,jiki_y-8 gmode 4,16,16,255 gcopy 1,0,16 //弾の描画 repeat shot_max if(shot_f(cnt)==1.0){ color 0,0,0 pos shot_x(cnt)-8,shot_y(cnt)-8 gmode 4,16,16,255 gcopy 1,0,0 } loop redraw 1 await 10 frame++ goto*main //弾番号の検索 *shot_search number = -1 repeat shot_max if(shot_f(cnt)!1.0):number = cnt:break loop return