#東方弾幕風 #Title[塞符「山神渡御」] #Text[塞符「山神渡御」コピー] #ScriptVersion[2] script_enemy_main { let imgBoss ="script\img\dot_aya.png"; //imgBoss変数に射命丸のドット絵パスを初期化 let frame = 0; //フレーム用変数を初期化 let a=0; //角度変更用変数を初期化 let name="塞符「山神渡御"; //スペルカード名 @Initialize { SetX(GetCenterX); SetY(GetClipMinY+130); //敵座標をX中心、Yを最小+120にセット SetLife(5000); //HP8000に設定 SetTimer(65); //タイマーを65秒に SetScore(1000000); //スペルカードボーナス、100万点 CutIn(YOUMU,name,"",0,0,0,0); //カットイン LoadGraphic(imgBoss); //グラフィックをロード SetTexture(imgBoss); //グラフィックを設定 SetGraphicRect(32, 32, 96, 96); //グラフィック短形を指定 } @MainLoop { SetCollisionA(GetX, GetY, 24); SetCollisionB(GetX, GetY, 24);//当たり判定(自機、自弾両方) if(frame>=120){ //120フレーム経ったなら if(frame%15==0) { //現在フレームが15の倍数ならば allshot(a,15,2.5,BLUE12); //全方位ショット(青)実行 allshot(-a,15,2.5,BLUE12); //回転角を逆にしてもうひとつ a+=2; //回転角を足していく } if(GetLife<=1500 || GetTimer<=15){ //残りHPが1500以下か残り時間が15秒以下なら if(frame%60==0){ //現在フレームが60の倍数ならば allshot(rand(0,360),68,1,GREEN05); //全方位ショット(緑)実行 } } else if(GetLife<=2500){ //そうでなく、残りHPが2500以下なら if(frame%90==0){ //現在フレームが90の倍数ならば allshot(rand(0,360),68,1,GREEN05); //全方位ショット(緑)実行 } } else { //それ以外のときは if(frame%120==0){ //現在フレームが120の倍数ならば allshot(rand(0,360),68,1,GREEN05); //全方位ショット(緑)実行 } } } frame++;//フレームをカウント } function allshot(dir,way,speed,color) {//全方弾ファンクション関数 //dir ・・・基本角 //way ・・・way数 //speed ・・・弾速 //color ・・・弾グラフィック let span=360/way; //way数から全方位弾の間隔を計算 let angle=dir-(way-1)/2*span; //基本角-(way数-1)/2*間隔、実際の発射角の計算 loop(way){ //wey数だけループ CreateShot01(GetX,GetY,speed,angle,color,30); //ショット発射 angle+=span; //発射角を毎度間隔分足す } } @DrawLoop { DrawGraphic(GetX, GetY); //射命丸画像を敵の中心に描画 } @Finalize { DeleteGraphic(imgBoss); //射命丸消滅 } }