#東方弾幕風 #Title[撃って戻ってver2] #Text[test] #ScriptVersion[2] script_enemy_main { @Initialize{ SetX(GetCenterX); SetY(GetClipMinY+120); SetLife(2000); LoadGraphic("script\img\ExRumia.png"); SetTexture("script\img\ExRumia.png"); SetGraphicRect(0, 0, 63, 63); let frame = 0; let kakudo = 0; Main; Main2; Main3; } @MainLoop { frame++; if(frame==1450){//frame=150+(10*5)+800 frame=100} SetCollisionA(GetX, GetY, 24); SetCollisionB(GetX, GetY, 24); yield; } @DrawLoop{DrawGraphic(GetX, GetY);} @Finalize{DeleteGraphic("script\img\ExRumia.png");} task Main { loop(100){yield;} loop{ if(frame==100){ loop(5){ loop(10){yield;} //角度を0にしておいて、while構文が終わって戻ってくるたびに0に初期化される let angle=0; //下のangleが360を満たすまで繰り返す while(angle<360){ //自機狙いにする方法 SetShotDirectionType(PLAYER); //発射位置 CreateShotA(1,300,150,0); //0フレーム時の処理 SetShotDataA(1,0,0,angle,0,0,NULL,RED32); //弾道動作 SetShotDataA(1,1,6,angle,0,0,6,RED32); SetShotDataA(1,30,-6,NULL,0,0,6,RED32); SetShotDataA(1,60,6,NULL,0.0,0,6,RED32); //発射 FireShot(1); //全方位弾の角度を決める angle+=5 } } loop(100){yield;} } } } task Main2 { loop(150){yield;} loop{ if(frame==150){ loop(5){ loop(10){yield;} //角度を0にしておいて、while構文が終わって戻ってくるたびに0に初期化される let angle=0; //下のangleが360を満たすまで繰り返す while(angle<360){ //自機狙いにする方法 SetShotDirectionType(PLAYER); //発射位置 CreateShotA(2,150,150,0); //0フレーム時の処理 SetShotDataA(2,0,0,angle,0,0,NULL,BLUE32); //弾道動作 SetShotDataA(2,1,6,angle,0,0,6,BLUE32); SetShotDataA(2,30,-6,NULL,0,0,6,BLUE32); SetShotDataA(2,60,6,NULL,0,0,6,BLUE32); //発射 FireShot(2); //全方位弾の角度を決める angle+=5 } } loop(100){yield;} } } } task Main3 { loop(100){yield;}//発射するまでの待ち時間が100フレーム loop{ if(frame<1000){//カウントが200より少なければ繰り返すスクリプト loop(50){//5フレーム間隔の弾を50発撃つ loop(5){yield;} //角度を0にしておいて、while構文が終わって戻ってくるたびに0に初期化される let angle=0; //下のangleが360を満たすまで繰り返す while(angle<360){ //発射位置 CreateShot01(400,150,6,angle,RED32,0); //全方位弾の角度を決める angle+=10 } } } if(frame>=1250){//カウントが200以上なら繰り返すスクリプト loop(50){//5フレーム間隔の弾を50発撃つ kakudo++;//角度を1ずつずらしていく loop(5){yield;} //角度を0にしておいて、while構文が終わって戻ってくるたびに0に初期化される let angle=0; //下のangleが360を満たすまで繰り返す while(angle<360){ //発射位置 CreateShot01(400,150,6,angle+kakudo,RED32,0); //全方位弾の角度を決める angle+=10 } } } kakudo=0; loop(200){yield;} } } }