#“Œ•û’e–‹•— #Title[Œķ‘zĒ•—‹ķ‚Ė–ēĢ] #Text[] #ScriptVersion[2] script_enemy_main { let imgBoss = "script\img\ExRumia.png"; @Initialize { SetX(GetCenterX); SetY(GetClipMinY + 120); SetLife(1500); SetDamageRate(30,20); CutIn(YOUMU,"Œķ‘zĒ•—‹ķ‚Ė–ēĢ","",0,0,0,0); SetTimer(66); SetScore(1000000); Concentration01(60); SetInvincibility(60); LoadGraphic(imgBoss); SetTexture(imgBoss); SetGraphicRect(0, 0, 63, 63); Tmain; } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); yield; } @DrawLoop { DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(imgBoss); } task Tmain { Wait(150); loop { Shot1(90,0 ); Wait(30); Shot1( 90,180 ); Wait(60); } } task Shot1( let nLevel, let nAngle_b ){ ascent( let i in 0..7){ CreateShotA(0,GetX()+100*cos(nAngle_b+i*10),GetY()+100*sin(nAngle_b+i*10),100-i*11.5); ascent( let n in 0..50 ){ SetShotDataA(0,n*2,0,0,0,0,0,[YELLOW04,WHITE04][n%2]); } SetShotKillTime(0,i*11.5); FireShot(0); CreateShotA(0,GetX()+100*cos(nAngle_b-i*10),GetY()+100*sin(nAngle_b-i*10),100-i*11.5); ascent( let n in 0..50 ){ SetShotDataA(0,n*2,0,0,0,0,0,[YELLOW04,WHITE04][n%2]); } SetShotKillTime(0,i*11.5); FireShot(0); } Wait(80); ascent( let i in 0..7){ let nWay = 10; RoundWideShot01 ( GetX()+100*cos(nAngle_b+i*10), GetY()+100*sin(nAngle_b+i*10), 17, GetGapAngle( GetX()+100*cos(nAngle_b+i*10),GetY()+100*sin(nAngle_b+i*10), GetPlayerX(),GetPlayerY() )+180/nWay, 1, nWay, 10, RED32, 0 ); RoundWideShot01 ( GetX()+100*cos(nAngle_b-i*10), GetY()+100*sin(nAngle_b-i*10), 17, GetGapAngle( GetX()+100*cos(nAngle_b-i*10),GetY()+100*sin(nAngle_b-i*10), GetPlayerX(),GetPlayerY() )+180/nWay, 1, nWay, 10, BLUE32, 0 ); } } function RoundWideShot01( let x, let y, let speed, let angle, let wideAngle, let wideWay, let roundWay, let graphic, let delay ) { let roundWayAngle = 360 / roundWay; let wideWayAngle = 0; if( wideWay > 1 ){ wideWayAngle = wideAngle / ( wideWay - 1 ); } loop( roundWay ){ let _angle = angle; if( wideWay > 1 ){ _angle -= wideAngle / 2; } loop( wideWay ){ CreateShot01( x, y, speed, _angle, graphic, delay ); _angle += wideWayAngle; } angle += roundWayAngle; } } function GetGapAngle( let xA, let yA,let xB,let yB ){ return atan2( yB - yA, xB - xA ); } function Wait(w){ loop(w){yield;} } }