これも弾幕っぽい?
少しずつ速度と角度を変えながら弾を発射。定数発射後はまた速度を初期値に戻して繰り返し。
ソースは続きをクリックして見てください。
いらない部分もあるけど、別アルゴリズムと共用しているのでお許しを。
; ;発射方向が回転 ; #include"hspdxfix.as" #define tama_max 1000 dim task,10 randomize es_ini 1024,,64 es_screen 640,480,32,,1,1 if stat : dialog"HSPDXFIX : DirectXの初期化に失敗":end buffer 2,640,480 picload "tama.bmp" es_buffer 0 es_size 16,16 es_pat 1,0,0,0 picload "jiki.bmp" es_buffer 1 es_size 64,64 es_pat 0,0,0,0 ;メインループ kaiten=0 mx=320 my=400 speed=4 twait = -1 tama = 30 houkou = 0 ntama = 1 tx=320 ty=240 dansu = 13 repeat ; twait -= 1 ; if cnt \ 100 = 0 : dansu = rnd(5)+8 if twait <0 { es_set ntama,tx,ty,1 es_adir ntama,(cnt\64),100+(cnt\dansu)*30 es_effect ntama,,,,,(cnt\64) ; es_adir ntama,(cnt\64)+(cnt \ 4)*16,50 ; es_effect ntama,,,,,(cnt\64)+(cnt \ 4)*16 ntama += 1 if ntama > 1000 : ntama = 1 ; twait = 1 } pos 0,0 color 255,255,255 es_mes "fps:" + fps + " " + dansu stick k,15 if k&2 : my=my-speed : if my<0 : my=0 if k&8 : my=my+speed : if my>414 : my=414 if k&1 : mx=mx-speed : if mx<0 : mx=0 if k&4 : mx=mx+speed : if mx>574 : mx=574 if k&128 : end ; es_set 0,mx,my,0 ; es_effect 0,64,64,,,cnt\64 es_sync 16 await 0 es_getfps fps ; es_cls 0,0,0 es_exboxf 0,0,639,479,0,,,,ESB_ALPHA,50 es_draw stick k,0 if k & 128 : end loop stop