#東方弾幕風 #Title[test10] #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); } //弾を設置するX座標を格納する変数 let xTable = [ 0, 0, 0,+10,-10,+20,-20,+30,-30,+35,-35,+37,-37,+40,-40]; //弾を設置するY座標を格納する変数 let yTable = [ 0,-15,-30,-45,-45,-60,-60,-45,-45,-30,-30,-15,-15, 0, 0]; //弾設置時のディレイを格納する変数 let dTable = [+10,+20,+30,+40,+50,+60,+70,+80,+90,+10,+20,+30,+40,+50,+60]; //軌道変化時間を管理する変数 let Delay = 120; //フレーム管理変数 let frame=0; @MainLoop{SetCollisionA(GetX, GetY, 24);SetCollisionB(GetX, GetY, 24); frame++; if(frame%300==0) { ascent( let i in 0..15) loop { ascent( let i2 in 0..10) loop { //格納された情報を元に弾を設置する CreateShotA(0,GetCenterX+xTable[i],GetCenterY+yTable[i]-50,dTable[i]/2); CreateShotA(1,GetCenterX+xTable[i],GetCenterY+yTable[i]-50,dTable[i]/2); //0フレーム目の動作情報は記述するお約束。 SetShotDataA(0,0,0,0,0,0,NULL,BLUE01); SetShotDataA(1,0,0,0,0,0,NULL,BLUE05); //どう動くか自由に設定 SetShotDataA(0,(Delay-dTable[i])/2,4,GetAngleToPlayer+i2*36,0,-0.05,0,BLUE01); SetShotDataA(0,(Delay-dTable[i])/2+90,1,-atan2( GetCenterY+20 - GetCenterY+yTable[i], GetCenterX - GetCenterX+xTable[i] ),0,0,NULL,BLUE01); SetShotDataA(1,(Delay-dTable[i])/2,4,GetAngleToPlayer+i2*36,0,-0.05,0,BLUE05); SetShotDataA(1,(Delay-dTable[i])/2+90,0.8,atan2( GetCenterY+20 - GetCenterY+yTable[i], GetCenterX - GetCenterX+xTable[i] )+180,0,0,NULL,BLUE05); //お約束のFireShot FireShot(0); FireShot(1); } } } } @DrawLoop{DrawGraphic(GetX, GetY);} @Finalize{DeleteGraphic("script\img\ExRumia.png");} }