#東方弾幕風 #Title[想起『無意識の山々』] #Text[恐らくimspakuri最強スペル] #Image[] #BackGround[Default] #ScriptVersion[2] //4つの固まり札弾の作成完了 //スクリプト間でSの値を共有する script_enemy_main {//1 let name = "想起『無意識の山々』"; let movecount = 0; let long = 4; let csd = GetCurrentScriptDirectory; let imgExRumia=GetCurrentScriptDirectory~"img\ExRumia.png"; let Flag=0; let r = 0; let angBase = GetAngle; let angle = 0; let SPEED2 = 0; let countS = 0; let imgFam = csd ~ "img\familiar.png"; let countfam = 0; let R = 75/3; let Rangle= 0; let Aangle= 36; let Bangle= 0; let movesec = 0; let famlimit = 60; let SR = 1.5;//弾スクリプトの値は共有する let SA = 1;//弾スクリプトの値は共有する let SB = 0.6;//弾スクリプトの値は共有する let SR2 = 3;//弾スクリプトの値は共有する let SA2 = 2;//弾スクリプトの値は共有する let SB2 = 1.2;//弾スクリプトの値は共有する let flag = 0; let sec = 0; let count;//弾を出す間隔を制御するための変数; let cx;//変数cxに真ん中の座標を代入; let cy; let angle=56;//攻撃用アングル let angle2=90; let FamX=(GetClipMaxX-GetClipMinY)/12; @Initialize {//2 CutIn(YOUMU, name, "", 0, 0, 0, 0); count=0;//弾を出す間隔を制御するための変数; cx=GetCenterX();//変数cxに真ん中の座標を代入; cy=GetCenterY(); SetLife(100000); SetTimer(99); SetScore(27000000); LoadUserShotData(GetCurrentScriptDirectory ~ "tamagazo.txt"); SetDamageRate(1000,0);//ボム無敵 LoadGraphic(imgExRumia);//画像「img\ExRumia.png」を読みこむ LoadGraphic(imgFam); SetMovePosition02(cx,570,360);//60フレームで移動 //SetInvincibility(30); }//2 @MainLoop {//6 zyouzi; muisiki; sec++; if(countfam==famlimit&&flag==0/*&&sec/60<40*/){famset;countfam=0;famlimit=220;flag=1;} if(countfam==famlimit&&flag==1/*&&sec/60<40*/){famset;countfam=0;famlimit-=10;} if(famlimit <140){famlimit = 140;} countfam++; //if(countfam==famlimit&&sec/60>=40&&flag==0){famset2; //countfam=0; //famlimit-=3; //} //if(countfam==famlimit) } @DrawLoop {//11 SetColor(255,255,255); SetRenderState(ALPHA); if(OnBomb==true){//8 SetAlpha(128); }//8 else{//8 SetAlpha(255); }//8 SetTexture(imgExRumia); if(GetSpeedX()==0){SetGraphicRect(64,1,127,64);} DrawGraphic(GetX(),GetY()); }//11 @Finalize {//12 DeleteGraphic(imgExRumia); //DeleteGraphic(imgExRumiaBack); }//12 task zyouzi { //-------------スペカ使用時常時使用関数?----------- SetCollisionA(GetX(),GetY(),32);//敵の座標に当たり判定を登録 SetCollisionB(GetX(),GetY(),24);//敵の座標に当たり判定(体当たり用)を登録 if(OnBomb==true){//8 SetDamageRate(0,0);//ボム使用中は無敵 AddLife(200); }//8 else{//9 SetDamageRate(1000,0); }//9 //-------------スペカ使用時常時使用関数?----------- } task muisiki { //-------------無意識みたいな動き方----------- movesec ++; if(movesec == 70){SetMovePosition03(60,400,10,2);} if(movesec == 70+60*4){SetMovePosition03(60,76,10,2);} if(movesec == 70+60*8){SetMovePosition03(390,400,10,2);} if(movesec == 70+60*12){SetMovePosition03(390,76,10,2);} if(movesec == 70+60*16){SetMovePosition03(GetPlayerX,GetPlayerY,10,2);} if(movesec == 70+60*23){SetMovePosition03(60,400,10,2);} if(movesec == 70+60*27){SetMovePosition03(390,76,10,2);} if(movesec == 70+60*31){SetMovePosition03(60,76,10,2);} if(movesec == 70+60*35){SetMovePosition03(390,400,10,2);} if(movesec == 70+60*39){SetMovePosition03(GetPlayerX,GetPlayerY,10,2);} if(movesec == 70+60*42){movesec = 0;} //-------------無意識みたいな動き方----------- } task famset { let Base = rand(0,72); ascent(i in 0..5) { CreateShotFromScript("FamiliarR",SR*R*cos(i*72+Rangle+Base), SR*R*sin(i*72+Rangle+Base), 0, i, 0, Base); CreateShotFromScript("FamiliarA",SA*R*cos(i*72+Aangle+Base), SA*R*sin(i*72+Aangle+Base), 0, i, 0, Base); CreateShotFromScript("FamiliarB",SB*R*cos(i*72+Bangle+Base), SB*R*sin(i*72+Bangle+Base), 0, i, 0, Base); } } task famset2 { let Base = rand(0,72); ascent(i in 0..5) { //CreateShotFromScript("FamiliarR2",GetX+SR2*R*cos(i*72+Rangle+Base), SR2*R*sin(i*72+Rangle+Base), 0, i, 0, Base); CreateShotFromScript("FamiliarA2",GetX+SA2*R*cos(i*72+Aangle+Base), GetY+SA2*R*sin(i*72+Aangle+Base), 0, i, 0, Base); CreateShotFromScript("FamiliarB2",GetX+SB2*R*cos(i*72+Bangle+Base), GetY+SB2*R*sin(i*72+Bangle+Base), 0, i, 0, Base); } } //@BackGround //{//13 //背景描画 //SetGraphicRect(0,0,384,448); //SetTexture(imgExRumiaBack); //DrawGraphic(cx,240); //}//13 }//1 // 使い魔,赤 script_shot FamiliarR { // let csd = GetCurrentScriptDirectory; // let imgFam = csd ~ "img\familiar.png"; let Xposi = GetX(); let Yposi = GetY(); let shot = 0; let delay = 0; let wall = -4.6; let count = 0; let r = 60/3; let angle = 270; let so = 0; let walllimit = 4.6; let number = 0; let C = GetArgument; let G = GetAngle; let SR = 1.5;//スクリプト間で共有すること let countmax=82; let color = 0; // sub setGraphicFast { SetGraphicRect( 0, 0, 48, 48); } if(C<37){color = 1;}else{color = 2;} @Initialize { // SetTexture(imgFam); // setGraphicFast; } @MainLoop { SetX(GetEnemyX+Xposi); SetY(GetEnemyY+Yposi); count++; if(count==countmax){ number++; if(number<=44/2){ wall+=walllimit/2;//増やすとと収縮⇒拡散までの時間が遅くなる angle+=4*2; delay+=2; //so ++; //if(so<5){ CreateShotA(shot,GetX+SR*r*cos(angle+G*72+C),GetY+SR*r*sin(angle+G*72+C),0); SetShotDataA(shot,0,0,angle-wall+G*72+C,0,0,0,RED21); SetShotDataA(shot,170-delay,0,angle-wall+G*72+C,0,-0.04,-3.2,RED21); FireShot(shot); //} if(wall>=walllimit){wall = -walllimit;} if(delay>=118){delay=0;} } count=0; countmax=2; } if(number >= 45-22){End;} //{number=0;delay=0;angle=290;} } // @DrawLoop { // //DrawGraphic(GetX, GetY); // } } // 使い魔,空 script_shot FamiliarA { // let csd = GetCurrentScriptDirectory; // let imgFam = csd ~ "img\familiar.png"; let Xposi = GetX(); let Yposi = GetY(); let shot = 0; let delay = 0; let wall = -4.6; let count = 0; let r = 60/3; let angle = 270; let so = 0; let walllimit = 4.6; let number = 0; let C = GetArgument+32; let G = GetAngle; let SA = 1;//スクリプト間で共有すること let DA = 0; let countmax=52; let color = 0; // sub setGraphicFast { SetGraphicRect( 0, 0, 48, 48); } if(C<69){color = 5;}else{color = 6;} @Initialize { // SetTexture(imgFam); // setGraphicFast; } @MainLoop { SetX(GetEnemyX+Xposi); SetY(GetEnemyY+Yposi); count++; if(count==countmax){ number++; if(number<=44*2){ wall+=walllimit/2;//増やすとと収縮⇒拡散までの時間が遅くなる angle+=4*2; delay+=2; //so ++; //if(so<5){ CreateShotA(shot,GetX+SA*r*cos(angle+G*72+C),GetY+SA*r*sin(angle+G*72+C),DA); SetShotDataA(shot,0,0,angle-wall+G*72+C,0,0,0,AQUA21); SetShotDataA(shot,170-delay,0,angle-wall+G*72+C,0,-0.04,-3.2,AQUA21); FireShot(shot); //} if(wall>=walllimit){wall = -walllimit;} if(delay>=118){delay=0;} } count=0; countmax=2; } if(number >= 45-22){End;} //{number=0;delay=0;angle=290;} } // @DrawLoop { // //DrawGraphic(GetX, GetY); // } } // 使い魔,蒼 script_shot FamiliarB { // let csd = GetCurrentScriptDirectory; // let imgFam = csd ~ "img\familiar.png"; let Xposi = GetX(); let Yposi = GetY(); let shot = 0; let delay = 0; let wall = -4.6/44*64-0.5; let count = 0; let angle = 231; let r = 60/3; let so = 0; let walllimit = 4.6/44*64+0.5; let number = 0; let C = GetArgument; let G = GetAngle; let SB = 0.6;//スクリプト間で共有すること let DB = 0; let countmax= 2; let color = 0; // sub setGraphicFast { SetGraphicRect( 0, 0, 48, 48); } if(C<37){color = 6; angle+=50;}else{color = 7;} @Initialize { // SetTexture(imgFam); // setGraphicFast; } @MainLoop { SetX(GetEnemyX+Xposi); SetY(GetEnemyY+Yposi); count++; if(count==countmax){ number++; if(number<=44/2){ wall+=walllimit/2;//増やすとと収縮⇒拡散までの時間が遅くなる angle+=4*64/44*2; delay+=2; //so ++; //if(so<5){ CreateShotA(shot,GetX+SB*r*cos(angle+G*72+C),GetY+SB*r*sin(angle+G*72+C),DB); SetShotDataA(shot,0,0,angle-wall+G*72+C,0,0,0,BLUE21); SetShotDataA(shot,170-delay,0,angle-wall+G*72+C,0,-0.04,-3.2,BLUE21); FireShot(shot); //} if(wall>=walllimit){wall = -walllimit;} if(delay>=132){delay=0;} } count=0; countmax=2; } if(number >= 65-32){End;} //{number=0;delay=0;angle=290;} } // @DrawLoop { //DrawGraphic(GetX, GetY); // } } // 使い魔,赤 script_shot FamiliarR2 { // let csd = GetCurrentScriptDirectory; // let imgFam = csd ~ "img\familiar.png"; let shot = 0; let delay = 0; let wall = -4.6; let count = 0; let r = 60/3; let angle = 270; let so = 0; let walllimit = 4.6; let number = 0; let C = GetArgument; let G = GetAngle; let SR2 = 3;//スクリプト間で共有すること let countmax=82; let color = 0; // sub setGraphicFast { SetGraphicRect( 0, 0, 48, 48); } if(C<37){color = 1;}else{color = 2;} @Initialize { // SetTexture(imgFam); // setGraphicFast; } @MainLoop { count++; if(count==countmax){ number++; if(number<=44/2){ wall+=walllimit/2;//増やすとと収縮⇒拡散までの時間が遅くなる angle+=4*2; delay+=2; //so ++; //if(so<5){ CreateShotA(shot,GetX+SR2*r*cos(angle+G*72+C),GetY+SR2*r*sin(angle+G*72+C),0); SetShotDataA(shot,0,0,angle-wall+G*72+C,0,0,0,color); SetShotDataA(shot,170-delay,0,angle-wall+G*72+C,0,-0.02,-1.2,color); FireShot(shot); //} if(wall>=walllimit){wall = -walllimit;} if(delay>=118){delay=0;} } count=0; countmax=2; } if(number >= 45-22){End;} //{number=0;delay=0;angle=290;} } // @DrawLoop { // //DrawGraphic(GetX, GetY); // } } // 使い魔,空 script_shot FamiliarA2 { // let csd = GetCurrentScriptDirectory; // let imgFam = csd ~ "img\familiar.png"; let shot = 0; let delay = 0; let wall = -90; let count = 0; let r = 60/3; let angle = 270; let so = 0; let walllimit = 90; let number = 0; let C = GetArgument+32; let G = GetAngle; let SA2 = 2;//スクリプト間で共有すること let DA = 0; let countmax=52; let color = 0; // sub setGraphicFast { SetGraphicRect( 0, 0, 48, 48); } if(C<69){color = AQUA01;}else{color = BLUE01;} @Initialize { // SetTexture(imgFam); // setGraphicFast; } @MainLoop { count++; if(count==countmax){ number++; if(number<=14/2){ wall+=walllimit/2;//増やすとと収縮⇒拡散までの時間が遅くなる angle+=4*44/14*2; delay+=2; //so ++; //if(so<5){ CreateShotA(shot,GetX+SA2*r*cos(angle+G*72+C),GetY+SA2*r*sin(angle+G*72+C),15); SetShotDataA(shot,0,0,angle-wall+G*72+C,0,0,0,color); SetShotDataA(shot,170-delay,0,angle-wall+G*72+C,0,-0.01,-1.2,color); FireShot(shot); //} if(wall>=walllimit){wall = -walllimit;} if(delay>=118-7){delay=0;} } count=0; countmax=4; } if(number >= 25){End;} //{number=0;delay=0;angle=290;} } // @DrawLoop { // //DrawGraphic(GetX, GetY); // } } // 使い魔,蒼 script_shot FamiliarB2{ // let csd = GetCurrentScriptDirectory; // let imgFam = csd ~ "img\familiar.png"; let shot = 0; let delay = 0; let wall = -90; let count = 0; let angle = 231; let r = 60/3; let so = 0; let walllimit = 90; let number = 0; let C = GetArgument; let G = GetAngle; let SB2 = 1.2;//スクリプト間で共有すること let DB = 0; let countmax= 2; let color = 0; // sub setGraphicFast { SetGraphicRect( 0, 0, 48, 48); } if(C<37){color = BLUE01; angle+=50;}else{color = PURPLE01;} @Initialize { // SetTexture(imgFam); // setGraphicFast; } @MainLoop { count++; if(count==countmax){ number++; if(number<=14){ wall+=walllimit/2;//増やすとと収縮⇒拡散までの時間が遅くなる angle+=4*64/14; delay+=2; //so ++; //if(so<5){ CreateShotA(shot,GetX+SB2*r*cos(angle+G*72+C),GetY+SB2*r*sin(angle+G*72+C),15); SetShotDataA(shot,0,0,angle-wall+G*72+C,0,0,0,color); SetShotDataA(shot,170-delay,0,angle-wall+G*72+C,0,-0.01,-1.2,color); FireShot(shot); //} if(wall>=walllimit){wall = -walllimit;} if(delay>=132){delay=0;} } count=0; countmax=4; } if(number >= 35){End;} //{number=0;delay=0;angle=290;} } // @DrawLoop { //DrawGraphic(GetX, GetY); // } }