



![]()
弾幕名:サイレントセレナ
作製難易度:★ (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 -