特別おかしいところは見当たらないのですが・・・
randomize screen 0,640,480 buffer 1:picload "data//reimu.png" buffer 2:picload "data//shot.png" gsel 0 //変数 x = 200.0 y = 200.0 frame = 0 cgx = 36//霊夢グラフィックgcopy時のx起点 cgy = 48//y起点 cgdx = 0//霊夢のgmode時のコピーサイズx cgdy = 0//yサイズ maxbullet = 100//画面内に表示する弾の最大 //配列変数 dim b,maxbullet//今、弾が存在しているか? dimtype b_x,vartype("double"),maxbullet//敵弾座標x dimtype b_y,vartype("double"),maxbullet//敵弾座標y dimtype b_vx,vartype("double"),maxbullet//敵弾x速度 dimtype b_vy,vartype("double"),maxbullet//敵弾y速度 *main //めいん color 255,255,255 boxf x = limitf(x,0,615) y = limitf(y,0,470) //自機の移動 stick key,15 if key&1 : x = x - 2:cgdx = 0:cgdy = 48 if key&2 : y = y - 2 if key&4 : x = x + 2:cgdx = 0:cgdy = 98 if key&8 : y = y + 2 //1秒に一回弾を表示 if(frame\60 == 1){ gosub *search if(number != -1){ b(number) = 1 b_x(number) = 50.0 b_y(number) = 200.0 b_vx(number) = 1.0 b_vy(number) = -0.5 } } //自機の表示 pos x-18,y-24 gmode 0,cgx,cgy gcopy 1,cgdx,cgdy //移動に使う値を初期化 cgx = 36 cgy = 48 cgdx = 0 cgdy = 0 //弾の表示 repeat maxbullet if ( b(cnt) == 1){ b_x(cnt) = b_x(cnt) + b_vx(cnt) b_y(cnt) = b_y(cnt) + b_vy(cnt) pos b_x(cnt)-8,b_y(cnt)-8 gmode 0,16,15 gcopy 2,0,14 } loop //フレームの表示 color 0,0,0 pos 0,0 mes frame //画面を更新して*mainへループ redraw 1 redraw 0 await 16 frame++ goto*main *search number = -1 repeat maxbullet if( b(cnt) ! =1) number = cnt:return loop return