📄 tank041.c
字号:
{
play_sample(A_BOMB_sound, 255, pan, pitch, FALSE); /*爆炸6声音 原子弹*/
A_BOMB_LIVE=1; A_BOMB_LIGHT_COLOR=225;
}
else if(BAO[n].Bao_number==7) /*信号弹 1触发增援*/
{
V=1;
}
}
BAO[n].nonce_fram++;
BAO[n].fram_time=BAO_BMP[BAO[n].Bao_number].BAO_fram_time; /*每帧时间记数还原*/
if(BAO[n].nonce_fram>BAO[n].BAO_MAX_fram) /*超出最大帧数*/
{
BAO[n].LIVE=0;
}
}
}
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
for(n=0;n<15;n++) /*降落伞*/
{
if(JIANG_LUO_SAN[n].LIVE==1)
{
JIANG_LUO_SAN[n].fram_time--;
if(JIANG_LUO_SAN[n].fram_time<=0)
{
JIANG_LUO_SAN[n].nonce_fram++;
JIANG_LUO_SAN[n].fram_time=JIANG_LUO_SAN[n].fram_MAX_time; /*每帧时间记数还原*/
if(JIANG_LUO_SAN[n].nonce_fram>JIANG_LUO_SAN[n].MAX_fram) /*超出最大帧数*/
{
JIANG_LUO_SAN[n].LIVE=0;
/*降落伞消失 根据kind初始化各个物品*/
if(JIANG_LUO_SAN[n].kind==1) /*如果是炸弹 地狱火*/
{
/* 初始化一个子弹 坐标X,坐标Y,目标点X,目标点Y,武器编号,NPC的编号*/
INIT_A_BB(JIANG_LUO_SAN[n].x,JIANG_LUO_SAN[n].y,JIANG_LUO_SAN[n].x,JIANG_LUO_SAN[n].y,5,0);
} /*kind==1 结束*/
else if(JIANG_LUO_SAN[n].kind==2) /*如果是箱子HP */
{
for(j=0;j<3;j++)
{
if(GOODS_BOX[j].LIVE==0)
{
GOODS_BOX[j].LIVE=1;
GOODS_BOX[j].kind=2;
GOODS_BOX[j].x=JIANG_LUO_SAN[n].x;
GOODS_BOX[j].y=JIANG_LUO_SAN[n].y;
GOODS_BOX[j].MAP_A=ASK_MAP_AB(GOODS_BOX[j].x,GOODS_BOX[j].y,MAP_X0,MAP_Y0,32,2);
GOODS_BOX[j].MAP_B=ASK_MAP_AB(GOODS_BOX[j].x,GOODS_BOX[j].y,MAP_X0,MAP_Y0,32,1);
GOODS_BOX[j].x=MAP_X0+GOODS_BOX[j].MAP_B*32+15;
GOODS_BOX[j].y=MAP_X0+GOODS_BOX[j].MAP_A*32+15;
break;
}
}
}
else if(JIANG_LUO_SAN[n].kind==3) /*如果是信号弹*/
{
INIT_A_BAO(JIANG_LUO_SAN[n].x,JIANG_LUO_SAN[n].y,7); /* 初始化一个爆炸 坐标X,坐标Y,武器编号*/
} /*kind==3 结束*/
if(JIANG_LUO_SAN[n].kind==4) /*如果是炸弹 原子弹*/
{
/* 初始化一个子弹 坐标X,坐标Y,目标点X,目标点Y,武器编号,NPC的编号*/
INIT_A_BB(JIANG_LUO_SAN[n].x,JIANG_LUO_SAN[n].y,JIANG_LUO_SAN[n].x,JIANG_LUO_SAN[n].y,6,0);
} /*kind==4 结束*/
/*降落伞消失 根据kind初始化各个物品 结束*/
}
rand_pianyi_xy(&JIANG_LUO_SAN[n].x,7); /*随机偏移*/
JIANG_LUO_SAN[n].y+=2;
}
}
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*飞机飞行*/
for(i=0;i<3;i++)
{
if(PLANE[i].LIVE==1)
{
PLANE[i].x+=9; /*飞机移动*/
if( DZ(PLANE[i].x,PLANE[i].y,PLANE[i].BOMB_X,PLANE[i].BOMB_Y)<=50 ) /*到达投弹区域*/
{
if(PLANE[i].BOMB_FIRE==0 && PLANE[i].BOMB_N==0)
{
PLANE[i].BOMB_FIRE=1;
/*声音*/
if(PLANE[i].BOMB_kind==1)
play_sample(YiHa, 255, pan, pitch, FALSE); /*YiHa*/
else if(PLANE[i].BOMB_kind==2)
play_sample(Wheee, 255, pan, pitch, FALSE); /*Wheee*/
else if(PLANE[i].BOMB_kind==3)
play_sample(reinfor_sound, 255, pan, pitch, FALSE); /*junhao*/
}
}
if(PLANE[i].x>=MAP_B_MAX*32+1500) PLANE[i].LIVE=0; /*飞机消失*/
if(PLANE[i].BOMB_XROF>0)
{
PLANE[i].BOMB_XROF--; /*射速 投弹时间变化*/
if(PLANE[i].BOMB_XROF<=0) PLANE[i].BOMB_XROF=0;
}
/*投弹量到了*/
if(PLANE[i].BOMB_N>=PLANE[i].BOMB_MAX_N) {PLANE[i].BOMB_FIRE=0; }
if(PLANE[i].BOMB_FIRE==1)
{
if(PLANE[i].BOMB_XROF<=0)
{
/*初始化一个降落伞*/
for(n=0;n<15;n++)
{
if(JIANG_LUO_SAN[n].LIVE==0)
{
JIANG_LUO_SAN[n].LIVE=1;
JIANG_LUO_SAN[n].x=PLANE[i].BOMB_X; /*当前坐标X*/
JIANG_LUO_SAN[n].y=PLANE[i].BOMB_Y; /*当前坐标Y*/
JIANG_LUO_SAN[n].nonce_fram=1; /*当前帧号*/
JIANG_LUO_SAN[n].fram_time=JIANG_LUO_SAN[n].fram_MAX_time; /*每帧记时*/
JIANG_LUO_SAN[n].kind=PLANE[i].BOMB_kind; /*属性*/
rand_pianyi_xy(&JIANG_LUO_SAN[n].x,60); /*投放点随机偏移*/
rand_pianyi_xy(&JIANG_LUO_SAN[n].y,60); /*投放点随机偏移*/
PLANE[i].BOMB_N++;
break;
}
}
PLANE[i].BOMB_XROF=PLANE[i].BOMB_XROF_MAX_TIME;
}
}/*if*/
}
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*箱子*/
for(n=0;n<3;n++)
{
if(GOODS_BOX[n].LIVE==1)
{
for(i=0;i<NPC_max_num;i++)
{
if(PLAYER[i].MAP_A==GOODS_BOX[n].MAP_A && PLAYER[i].MAP_B==GOODS_BOX[n].MAP_B) /*NPC碰到箱子*/
{
GOODS_BOX[n].LIVE=0;
/*根据kind做相应的处理*/
if(GOODS_BOX[n].kind==2) /*补血箱*/
{
PLAYER[i].HP+=200; if(PLAYER[i].HP>PLAYER[i].MAX_HP) PLAYER[i].HP=PLAYER[i].MAX_HP;
if(i==0) /*玩家得到 发出声音*/
play_sample(eat_sound, 255, pan, pitch, FALSE);
}
}
}
}
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*光标处理*/
if(GUANG_BIAO.LIVE==1)
{
GUANG_BIAO.fram_time--;
if(GUANG_BIAO.fram_time<=0)
{
GUANG_BIAO.nonce_fram++;
GUANG_BIAO.fram_time=GUANG_BIAO.fram_MAX_time; /*每帧时间记数还原*/
if(GUANG_BIAO.nonce_fram>GUANG_BIAO.MAX_fram) /*超出最大帧数*/
{
GUANG_BIAO.LIVE=0;
}
}
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++对鼠标的响应+++++++++++++++++++++++++++++*/
/*鼠标屏幕坐标转换为地图相对坐标*/
MX=mouse_x-320+C.x;
MY=mouse_y-240+C.y;
if (mouse_b == 1) /*左键按下*/
{
mb=1; /*左键按过了*/
PLAYER[0].fire=1; /*射击*/
}
if (mouse_b == 2) /*右键按下*/
{
mb=2; /*右键按过了*/
}
if (mouse_b == 0)
{
if(mb==1)/*左键按过*/
{
mb=0;
}
if(mb==2)/*右键按过*/
{
PLAYER[0].whither_x=MX; /*目的地x*/
PLAYER[0].whither_y=MY; /*目的地y*/
PLAYER[0].whether_have_whither=1; /*是否有目的地*/
PLAYER[0].o_angle[0]=ASK_a(PLAYER[0].X1,PLAYER[0].Y1,PLAYER[0].whither_x,PLAYER[0].whither_y);
/*----------*/
/*光标*/
GUANG_BIAO.LIVE=1;
GUANG_BIAO.x=MX; /*当前坐标X*/
GUANG_BIAO.y=MY; /*当前坐标Y*/
GUANG_BIAO.nonce_fram=1; /*当前帧号*/
GUANG_BIAO.fram_time=GUANG_BIAO.fram_MAX_time; /*每帧记时*/
/*----------*/
/*发声音*/
n=Xrand(1,5);
if(n==1) play_sample(yes_sir_sound, 255, pan, pitch, FALSE); /*yes_sir*/
else if(n==2) play_sample(ok_sound, 255, pan, pitch, FALSE); /*ok*/
else if(n==3) play_sample(yeah_sound, 255, pan, pitch, FALSE); /*yeah*/
else if(n==4) play_sample(move_out_sound, 255, pan, pitch, FALSE); /*move_out*/
else if(n==5) play_sample(roger_sound, 255, pan, pitch, FALSE); /*roger*/
/*----------*/
mb=0;
}
}
/*玩家0炮塔目标角 对着鼠标*/
PLAYER[0].o_angle[1]=ASK_a(PLAYER[0].X1,PLAYER[0].Y1,MX,MY);
/*计算PLAYER0的目标点,当前指到的点*/
PLAYER[0].opx=PLAYER[0].X1; PLAYER[0].opy=PLAYER[0].Y1;
MOVE_TO3(PLAYER[0].angle[1], &PLAYER[0].opx, &PLAYER[0].opy, DZ(PLAYER[0].X1,PLAYER[0].Y1,MX,MY) );
/*++++++++++++++++++++++++对按键的响应+++++++++++++++++++++++++++++*/
/*退出*/
if(key[KEY_ESC]) {
goto EXIT_GAME;
}
/*前进*/
if(key[KEY_UP]||key[KEY_W])
{
PLAYER[0].forward=1;
PLAYER[0].move=1;
PLAYER[0].whether_have_whither=0; /*是否有目的地*/
}
/*左转*/
if(key[KEY_LEFT]||key[KEY_A]) {
PLAYER[0].angle[0]-=3;
PLAYER[0].whether_have_whither=0; /*是否有目的地*/
if(PLAYER[0].angle[0]>360) PLAYER[0].angle[0]-=360;
else if(PLAYER[0].angle[0]<0) PLAYER[0].angle[0]+=360;
else if(PLAYER[0].angle[0]==360) PLAYER[0].angle[0]=0;
PLAYER[0].o_angle[0]=PLAYER[0].angle[0];
}
/*右转*/
if(key[KEY_RIGHT]||key[KEY_D]){
PLAYER[0].angle[0]+=3;
PLAYER[0].whether_have_whither=0; /*是否有目的地*/
if(PLAYER[0].angle[0]>360) PLAYER[0].angle[0]-=360;
else if(PLAYER[0].angle[0]<0) PLAYER[0].angle[0]+=360;
else if(PLAYER[0].angle[0]==360) PLAYER[0].angle[0]=0;
PLAYER[0].o_angle[0]=PLAYER[0].angle[0];
}
/*后退*/
if(key[KEY_DOWN]||key[KEY_S])
{
PLAYER[0].backward=1;
PLAYER[0].move=1;
PLAYER[0].whether_have_whither=0; /*是否有目的地*/
}
if(key[KEY_B])
{
if(PLANE[0].LIVE==0) /*初始化轰炸机*/
{
INIT_PLANE(0,MX,MY-32, 10, 1,1); /*初始化飞机*/
play_sample(bomb_attack_sound, 255, pan, pitch, FALSE); /*轰炸机的声音*/
}
}
if(key[KEY_V])
{
if(PLANE[1].LIVE==0) /*初始化小飞机*/
{
INIT_PLANE(1,MX,MY-30, 1, 2,2); /*初始化飞机*/
play_sample(yes_sir_sound_02, 255, pan, pitch, FALSE);
}
}
if(key[KEY_O])
{
if(PLANE[2].LIVE==0) /*初始化轰炸机*/
{
INIT_PLANE(2,MX,MY-32, 1, 4,3); /*初始化飞机 投放原子弹*/
play_sample(bomb_attack_sound, 255, pan, pitch, FALSE); /*轰炸机的声音*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -