[nico]http://www.nicovideo.jp/watch/sm13514203[/nico]
仕掛けについては文章で説明しないので興味のある方は下の弾幕関数をご覧ください。
弾のサイズの変更方法は龍神録では使っていないと思うので必要がない場合、書きません。
弾幕関数
► スポイラーを表示
void boss_shot_bulletT209(){
int i,j,k;
double dx,dy;
int t=boss_shot.cnt;
double *hp;//左右の弾の体力
if(t==0){
//魔法陣の配置(飾り)
jin_on(60,FMY/2,0,0,0,0,1);
jin_on(FMX-60,FMY/2,PI,0,0,0,1);
jin_on(FMX/2,FMY/2,0,0,0,0,2);
//左右に紫、真ん中に赤の弾を配置(ボム無効)
boss_bullet_on_num(0,1,0,2,FMX/2,FMY/2,3,0,0,1,0,0,0);
boss_bullet_on_num(1,1,5,2,60,FMY/2,3,0,0,2,0,0,0);
boss_shot.bullet[1].base_angle[0]=100.0;//体力として代用
boss_bullet_on_num(2,1,5,2,FMX-60,FMY/2,3,PI,0,2,0,0,0);
boss_shot.bullet[2].base_angle[0]=100.0;//体力として代用
//龍神録にはない魔力ゲージの代わりに体力を用いる。そのため、大きめにとる
boss.hp_max=10000000;
boss.hp=1000;
}
//自機ショットやボムでは倒れないようにする
if(boss.hp0){
switch(boss_shot.bullet[i].state){
case 1://中央の赤い弾
if(boss_shot.bullet[i].sizeboss.hp_max){//限界
boss_shot.bullet[i].size=20.1;
for(k=0;kboss.hp_max*3/4){
boss_shot.bullet[i].size=10;
}
else if(boss.hp>boss.hp_max/2){
boss_shot.bullet[i].size=6;
}
else if(boss.hp>boss.hp_max/4){
boss_shot.bullet[i].size=4;
}
}
}
}
}
else{
//魔力がたまると画面いっぱいに膨張する
boss.endtime=2;//途中で止まらないようにする
boss_shot.bullet[i].size+=15.0/60;
if(boss_shot.bullet[i].size>80.0){
boss.endtime=0;
}
}
break;
case 2://左右の玉
if(boss_shot.bullet[i].size>1.0){//通常時
if(boss_shot.bullet[i].cnt%1800){
dx=cshot[j].x-boss_shot.bullet[i].x;
dy=cshot[j].y-boss_shot.bullet[i].y;
if(dx*dx+dy*dyFMY){
for(j=0;jFMX+50 || boss_shot.bullet[i].y>FMY+50){
boss_shot.bullet[i].vx=0;
boss_shot.bullet[i].vy=0;
boss_shot.bullet[i].flag=0;
}
boss_shot.bullet[i].vy+=0.03;
boss_shot.bullet[i].x+=boss_shot.bullet[i].vx;
boss_shot.bullet[i].y+=boss_shot.bullet[i].vy;
break;
}
}
}
}