>>点此回到教程目录
弹幕名:沉默的圣奈(サイレントセレナ)(Silence Seirai)
制作难易度:★ (1/10)
运行结果
第一回弹幕制作讲座我们将制作弹幕——“沉默的圣奈”。
这个弹幕为圆形散开连续发射的子弹和随机地往下掉落子弹组成,非常简单,因此实现起来也很轻松。
.base_angle中保存每1回弹幕开始时自机与Boss的角度,以此为基准进行圆形发射。
程序的流程请参考注释。
—-在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();//自机与Boss的角度 if(cnum%4==3){// 4次弹幕移动一次 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();//自机-Boss之间的角度 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次计数掉落一次的子弹的登录 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。