紅Normal中ボス 通常弾幕     --ここから-- #東方弾幕風 #Title[練習用ルーミア01] #Text[中ボス通常] #ScriptVersion[2] script_enemy_main { let imgBoss = "script\img\ExRumia.png"; @Initialize { SetX(GetCenterX); SetY(0); SetLife(2000); SetTimer(24); LoadGraphic(imgBoss); SetTexture(imgBoss); SetGraphicRect(0, 0, 63, 63); TMove; } @MainLoop { SetCollisionA(GetX, GetY, 24); SetCollisionB(GetX, GetY, 24); yield; } @DrawLoop { DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(imgBoss); } task TMove{ yield; loop{ SetMovePosition02(GetCenterX+120,150,30); loop(60){yield;} lringShot(GetAngleToPlayer(),16,5,3,3,BLUE01,20); loop(20){yield;} SetMovePosition02(GetCenterX,60,30); loop(60){yield;} local{ let angle=25; let spd=7; loop(5){ ringShot(angle,14,spd,WHITE05,10); angle-=5; spd-=0.5; yield;yield;yield; } } loop(60){yield;} SetMovePosition02(GetCenterX-120,150,30); loop(15){yield;} lringShot(GetAngleToPlayer(),16,5,3,3,GREEN01,20); loop(10){yield;} lringShot(GetAngleToPlayer(),16,5,3,3,YELLOW01,20); loop(30){yield;} SetMovePosition02(GetCenterX,60,30); loop(60){yield;} ringShot(GetAngleToPlayer,8,6,RED05,5); ringShot(GetAngleToPlayer+5,8,6,BLUE05,8); ringShot(GetAngleToPlayer-3,8,5,GREEN12,5); ringShot(GetAngleToPlayer,8,5,RED05,8); ringShot(GetAngleToPlayer+10,8,4,BLUE12,6); ringShot(GetAngleToPlayer-10,8,4,YELLOW12,6); ringShot(GetAngleToPlayer+20,8,4,RED12,6); loop(60){yield;} } } function lringShot(dir, way, smax, smin, lap, color, delay){ let spd=smin; loop(lap){ ringShot(dir,way,spd,color,delay); spd+= (smax-smin)/lap } } function ringShot(dir, way, speed, color, delay){ let angle=dir; loop(way){ CreateShot01(GetX,GetY,speed,angle,color,delay); angle+= 360/way; } } }     --ここまで-- 紅Normal1面ボス 通常1 (未完成)     --ここから-- #東方弾幕風 #Title[練習用ルーミア02] #Text[ボス通常1] #ScriptVersion[2] script_enemy_main { let imgBoss = "script\img\ExRumia.png"; @Initialize { SetX(GetCenterX); SetY(120); SetLife(2000); SetTimer(36); LoadGraphic(imgBoss); SetTexture(imgBoss); SetGraphicRect(0, 0, 63, 63); TMain; } @MainLoop { SetCollisionA(GetX, GetY, 24); SetCollisionB(GetX, GetY, 24); yield; } @DrawLoop { DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(imgBoss); } task TMain{ yield; loop(30){yield;} local{ let rad=rand(80,150); let ang=rand(0,360); let dx=GetX+ (cos(ang)*rad); let dy=GetY+ (sin(ang)*rad); if(dx<20){dx=20;} if(dx>324){dx=324;} if(dy<20){dy=20;} if(dy>180){dy=180;} SetMovePosition02(dx,dy,30); } TShot(0); loop{ loop(90){yield;} local{ let rad=rand(80,150); let ang=rand(0,360); let dx=GetX+ (cos(ang)*rad); let dy=GetY+ (sin(ang)*rad); if(dx<20){dx=20;} if(dx>324){dx=324;} if(dy<20){dy=20;} if(dy>180){dy=180;} SetMovePosition02(dx,dy,30); } TShot(rand_int(0,2)); } } task TShot(type){ if(type==0){ loop(5){ let spd=3; loop(10){ SetShotDirectionType(PLAYER); CreateShot01(GetX,GetY,spd,0,RED01,20); spd+=0.5; } yield;yield;yield;yield;yield;yield; } }else if(type==1){ let spd=1; let ang=3; loop(16){ SetShotDirectionType(PLAYER); CreateShot01(GetX,GetY,spd,ang*9,GREEN01,5); spd+=0.2; ang--; yield; } }else if(type==2){ loop(30){yield;} let ang=1; loop(3){ let spd=3; loop(18){ SetShotDirectionType(PLAYER); CreateShot01(GetX,GetY,spd,ang*5,RED12,20); spd+=0.4; } ang--; } loop(20){yield;} let ang=0; loop(16){ CreateShot01(GetX,GetY,3,ang,BLUE01,2); ang+=22.5; } } } }     --ここまで-- 参考動画 http://www.nicovideo.jp/watch/sm1949422