弾幕名:サイレントセレナ
作製難易度:★ (1/10)
実行結果
---- boss_shotH.cpp に以下を追加 ---- //サイレントセレナ void boss_shot_bulletH001(){ #define TM001 60 int i,k,t=boss_shot.cnt%TM001,t2=boss_shot.cnt; static int cnum; double angle; if(t2==0)//最初の初期化 cnum=0; if(t==0){//1ターンの最初の初期化 boss_shot.base_angle[0]=bossatan2();//自機とボスの角度 if(cnum%4==3){//4ターンに1回移動 move_boss_pos(40,30,FMX-40,120,60, 60); } } //1ターンの最初は自機狙い、半分からは自機狙いからずらす if(t==TM001/2-1) boss_shot.base_angle[0]+=PI2/20/2; //1ターンに10回円形発射の弾をうつ if(t%(TM001/10)==0){ angle=bossatan2();//自機-ボスの成す角 for(i=0;i<20;i++){//20個 if((k=search_boss_shot())!=-1){ boss_shot.bullet[k].col = 4; boss_shot.bullet[k].x = boss.x; boss_shot.bullet[k].y = boss.y; boss_shot.bullet[k].knd = 8; //ベース角度から20個回転して発射 boss_shot.bullet[k].angle = boss_shot.base_angle[0]+PI2/20*i; boss_shot.bullet[k].flag = 1; boss_shot.bullet[k].cnt = 0; boss_shot.bullet[k].spd = 2.7;//スピード se_flag[0]=1; } } } //4カウントに1回下に落ちる弾を登録 if(t%4==0){ if((k=search_boss_shot())!=-1){ boss_shot.bullet[k].col = 0; boss_shot.bullet[k].x = GetRand(FMX); boss_shot.bullet[k].y = GetRand(200); boss_shot.bullet[k].knd = 8; boss_shot.bullet[k].angle = PI/2;//真下の角度 boss_shot.bullet[k].flag = 1; boss_shot.bullet[k].cnt = 0; boss_shot.bullet[k].spd = 1+rang(0.5); se_flag[0]=1; } } if(t==TM001-1) cnum++; }
変更されているfunc.hも確認しておいて下さい。
- Remical Soft -