深入解析 refresh_map 函数:地图刷新与状态切换的实现

深入解析 refresh_map 函数:地图刷新与状态切换的实现

源码开发游戏有哪些_游戏开发源码_游戏源码能干嘛

void refresh_map() //i代表行,即纵坐标;j代表列氛围,即横坐标

对于(int i = 0; i

对于(int j = 0; j

地图[i][j]=0;

对于(int i = 0; i

地图[i][0]=1;

地图[i][29]=1;

对于(int j = 0; j

地图[0][j]=1;

地图[29][j]=1;

对于(int i = 0; i

对于(int j = 0; j

地图[i+26][j+13]=主页[i][j];

对于(int i = 0; i

对于(int j = 0; j

地图[i+1][j+1] = 事物[i][j];

switch(state) //地图第四部分:坦克(始终变化)

情况1:

映射[y-1][x-1]=0;映射[y-1][x]=1;映射[y-1][x+1]=0;

映射[y][x-1]=1; 映射[y][x]=1; 映射[y][x+1]=1;

映射[y+1][x-1]=1;映射[y+1][x]=0;映射[y+1][x+1]=1;

}休息;

情况 2:

映射[y-1][x-1]=1;映射[y-1][x]=0;映射[y-1][x+1]=1;

映射[y][x-1]=1; 映射[y][x]=1; 映射[y][x+1]=1;

映射[y+1][x-1]=0;映射[y+1][x]=1;映射[y+1][x+1]=0;

}休息;

案例 3:

映射[y-1][x-1]=0;映射[y-1][x]=1;映射[y-1][x+1]=1;

映射[y][x-1]=1;映射[y][x]=1;映射[y][x+1]=0;

映射[y+1][x-1]=0;映射[y+1][x]=1;映射[y+1][x+1]=1;

}休息;

案例4:

映射[y-1][x-1]=1;映射[y-1][x]=1;映射[y-1][x+1]=0;

映射[y][x-1]=0;映射[y][x]=1;映射[y][x+1]=1;

映射[y+1][x-1]=1;映射[y+1][x]=1;映射[y+1][x+1]=0;

}休息;

切换(state_1)

情况1:

地图[y1-1][x1-1]=0; 地图[y1-1][x1]=1; 地图[y1-1][x1+1]=0;

地图[y1][x1-1]=1; 地图[y1][x1]=1; 地图[y1][x1+1]=1;

映射[y1+1][x1-1]=1; 映射[y1+1][x1]=0; 映射[y1+1][x1+1]=1;

}休息;

情况 2:

映射[y1-1][x1-1]=1;映射[y1-1][x1]=0;映射[y1-1][x1+1]=1;

地图[y1][x1-1]=1; 地图[y1][x1]=1; 地图[y1][x1+1]=1;

映射[y1+1][x1-1]=0;映射[y1+1][x1]=1;映射[y1+1][x1+1]=0;

}休息;

案例 3:

映射[y1-1][x1-1]=0;映射[y1-1][x1]=1;映射[y1-1][x1+1]=1;

映射[y1][x1-1]=1; 映射[y1][x1]=1; 映射[y1][x1+1]=0;

映射[y1+1][x1-1]=0; 映射[y1+1][x1]=1; 映射[y1+1][x1+1]=1;

}休息;

案例4:

映射[y1-1][x1-1]=1;映射[y1-1][x1]=1;映射[y1-1][x1+1]=0;

映射[y1][x1-1]=0; 映射[y1][x1]=1; 映射[y1][x1+1]=1;

映射[y1+1][x1-1]=1;映射[y1+1][x1]=1;映射[y1+1][x1+1]=0;

}休息;

切换(state_2)

情况1:

映射[y2-1][x2-1]=0;映射[y2-1][x2]=1;映射[y2-1][x2+1]=0;

地图[y2][x2-1]=1; 地图[y2][x2]=1; 地图[y2][x2+1]=1;

映射[y2+1][x2-1]=1; 映射[y2+1][x2]=0; 映射[y2+1][x2+1]=1;

}休息;

情况 2:

映射[y2-1][x2-1]=1;映射[y2-1][x2]=0;映射[y2-1][x2+1]=1;

地图[y2][x2-1]=1; 地图[y2][x2]=1; 地图[y2][x2+1]=1;

映射[y2+1][x2-1]=0; 映射[y2+1][x2]=1; 映射[y2+1][x2+1]=0;

}休息;

案例 3:

地图[y2-1][x2-1]=0; 地图[y2-1][x2]=1; 地图[y2-1][x2+1]=1;

映射[y2][x2-1]=1; 映射[y2][x2]=1; 映射[y2][x2+1]=0;

映射[y2+1][x2-1]=0; 映射[y2+1][x2]=1; 映射[y2+1][x2+1]=1;

}休息;

案例4:

地图[y2-1][x2-1]=1;地图[y2-1][x2]=1;地图[y2-1][x2+1]=0;

映射[y2][x2-1]=0; 映射[y2][x2]=1; 映射[y2][x2+1]=1;

映射[y2+1][x2-1]=1; 映射[y2+1][x2]=1; 映射[y2+1][x2+1]=0;

}休息;

切换(state_3)

情况1:

映射[y3-1][x3-1]=0;映射[y3-1][x3]=1;映射[y3-1][x3+1]=0;

地图[y3][x3-1]=1; 地图[y3][x3]=1; 地图[y3][x3+1]=1;

映射[y3+1][x3-1]=1; 映射[y3+1][x3]=0; 映射[y3+1][x3+1]=1;

}休息;

情况 2:

映射[y3-1][x3-1]=1;映射[y3-1][x3]=0;映射[y3-1][x3+1]=1;

地图[y3][x3-1]=1; 地图[y3][x3]=1; 地图[y3][x3+1]=1;

映射[y3+1][x3-1]=0; 映射[y3+1][x3]=1; 映射[y3+1][x3+1]=0;

}休息;

案例 3:

映射[y3-1][x3-1]=0;映射[y3-1][x3]=1;映射[y3-1][x3+1]=1;

映射[y3][x3-1]=1;映射[y3][x3]=1;映射[y3][x3+1]=0;

映射[y3+1][x3-1]=0; 映射[y3+1][x3]=1; 映射[y3+1][x3+1]=1;

}休息;

案例4:

映射[y3-1][x3-1]=1;映射[y3-1][x3]=1;映射[y3-1][x3+1]=0;

映射[y3][x3-1]=0; 映射[y3][x3]=1; 映射[y3][x3+1]=1;

映射[y3+1][x3-1]=1; 映射[y3+1][x3]=1; 映射[y3+1][x3+1]=0;

}休息;

无效我的移动()

字符键;

if (kbhit()) //检测,如果有键按下,则执行if函数

key = getch(); //捕获密钥

开关(键)

案例 72:turn_up(my_tank); //向上

休息;

案例 75:turn_left(my_tank);//左转

休息;

案例 77:turn_right(my_tank);//向右

休息;

案例 80:turn_down(my_tank);//向下

休息;

case 32:stop(); //暂停或开始的空间

休息;

case 104:help(); //切换到帮助菜单

休息;

case 115:switch_skin(),print_my_tank(); //使用小s键切换皮肤

休息;

case 119:switch_weapons(); //用小w键切换武器

休息;

case 27:exit(0);//Esc退出

默认: ;

int check1(int x,int y)//就是上面那个,用它来检查

对于(int j = y; j

如果(map[j][x]==4)

返回0;

返回1;

int check2(int x,int y)//左边用它来检查

对于(int i = x; i

如果(地图[y][i]==4)

返回0;

返回1;

int check3(int x,int y)//在右边,用它来检查

对于(int i = x; i> 15; i--)

如果(地图[y][i]==4)

返回0;

返回1;

无效move_1()

if((x1==14 || x1==15) && check1(x1,y1))//就在上方

如果(state_1!=2)

turn_down_1(坦克1);

否则,如果(x1

如果(state_1!=4)

右转_1(坦克_1);

else if(x1>15 && y1==27 && check3(x1,y1))//在右边

如果(state_1!=3)

左转_1(坦克_1);

别的

如果(判断2(x1,y1,cp1))

开关(cp1)

情况1:turn_up_1(tank_1);中断;

情况2:turn_down_1(tank_1);中断;

情况3:turn_left_1(tank_1);中断;

情况4:turn_right_1(tank_1);打破;

while(判断2(x1,y1,cp1) == 0)

cp1=(rand()%4+1);

无效move_2()

if((x2==14 || x2==15) && check1(x2,y2))//就在上方

如果(state_2!=2)

turn_down_2(坦克2);

否则,如果(x2

如果(state_2!=4)

右转2(坦克2);

else if(x2>15 && y2==27 && check3(x2,y2))//在右边

如果(state_2!=3)

左转2(坦克2);

别的

如果(判断2(x2,y2,cp2))

开关(cp2)

情况1:turn_up_2(tank_2);中断;

情况2:turn_down_2(tank_2);中断;

情况3:turn_left_2(tank_2);中断;

情况4:turn_right_2(tank_2);中断;

while(判断2(x2,y2,cp2) == 0)

cp2 =(rand()%4 + 1);

无效move_3()

if((x3==14 || x3==15) && check1(x3,y3))//就在上方

如果(state_3!=2)

turn_down_3(坦克3);

否则,如果(x3

如果(state_3!=4)

右转_3(坦克_3);

else if(x3>15 && y3==27 && check3(x3,y3))//在右边

如果(state_3!=3)

向左转3(坦克3);

别的

如果(判断2(x3,y3游戏开发源码,cp3))

开关(cp3)

情况1:turn_up_3(tank_3);中断;

情况2:turn_down_3(tank_3);中断;

情况3:turn_left_3(tank_3);中断;

情况4:turn_right_3(tank_3);中断;

while(判断2(x3,y3,cp3) == 0)

cp3=(rand()%4+1);

int check_bullet(int x,int y)

如果 (地图 [ y ] [ x ])

返回0;

返回1;

void change_thing()//物品被子弹击中后会发生变化

如果(m>0&&m0&&n

if(thing[n-1][m-1]==1) //击中第一个方块

如果(武器==2)

如果(事物[n][m-1]==1)

事物[n][m-1]=0;

乙氧基(2*m游戏开发源码,n+1);

printf(" "); //擦除正方形

如果(事物[n-2][m-1]==1)

事物[n-2][m-1]=0;

戈替氧(2*m,n-1);

printf(" "); //擦除正方形

如果(事物[n-1][m]==1)

事物[n-1][m]=0;

乙氧基(2*(m+1),n);

printf(" "); //擦除正方形

如果(事物[n-1][m-2]==1)

事物[n-1][m-2]=0;

乙氧基(2*(m-1),n);

printf(" "); //擦除正方形

事物[n-1][m-1]=0;

戈替氧(2*m,n);

printf(" "); //擦除正方形

m=0,n=0;//子弹消失

打印_thing();

刷新地图();

否则,如果(武器==3)

事物[n-1][m-1]=0;

戈替氧(2*m,n);

printf(" "); //擦除正方形

打印我的子弹(m,n);

打印_thing();

刷新地图();

别的

事物[n-1][m-1]=0;

戈替氧(2*m,n);

printf(" "); //擦除正方形

m=0,n=0;//子弹消失

打印事物();

刷新地图();

else if(thing[n-1][m-1]==2)//击中第二个方块

如果(武器==5)

事物[n-1][m-1]=0;

戈替氧(2*m,n);

打印(“ “);

m=0,n=0;//子弹消失

打印_thing();

刷新地图();

否则,如果(武器==2)

m=0,n=0;

别的

事物[n-1][m-1]=1;

m=0,n=0;//子弹消失

打印_thing();

刷新地图();

否则,如果(事物[n-1][m-1]==3)

如果(武器==4 ||武器==2)

m=0技能特效,n=0;

否则,如果(武器==5)

事物[n-1][m-1]=0;

戈替氧(2*m,n);

打印(“ “);

m=0,n=0;//子弹消失

打印_thing();

刷新地图();

别的

事物[n-1][m-1]=2;

m=0,n=0;//子弹消失

打印_thing();

刷新地图();

else if(thing[n-1][m-1]==4) //此方块不受子弹影响

m=0,n=0;//子弹消失

如果(m1>0&&m10&&n1

如果(事物[n1-1][m1-1]==1)

事物[n1-1][m1-1]=0;

戈替氧(2*m1,n1);

打印(“ “);

m1=0,n1=0;

打印_thing();

刷新地图();

否则,如果(事物[n1-1][m1-1]==2)

事物[n1-1][m1-1]=1;

m1=0,n1=0;//子弹消失

打印_thing();

刷新地图();

否则,如果(事物[n1-1][m1-1]==3)

事物[n1-1][m1-1]=2;

m1=0,n1=0;//子弹消失

打印_thing();

刷新地图();

else if(thing[n-1][m-1]==4) //此方块不受子弹影响

m1=0,n1=0;//子弹消失

如果(m2>0&&m20&&n2

如果(事物[n2-1][m2-1]==1)

事物[n2-1][m2-1]=0;

戈替氧(2*m2,n2);

打印(“ “);

m2=0,n2=0;

打印事物();

刷新地图();

否则,如果(事物[n2-1][m2-1]==2)

事物[n2-1][m2-1]=1;

m2=0,n2=0;//子弹消失

打印_thing();

刷新地图();

否则,如果(事物[n2-1][m2-1]==3)

事物[n2-1][m2-1]=2;

m2=0,n2=0;//子弹消失

打印_thing();

刷新地图();

else if(thing[n2-1][m2-1]==4) //此方块不受子弹影响

m2=0,n2=0;//子弹消失

如果(m3>0&&m30&&n3

如果(事物[n3-1][m3-1]==1)

事物[n3-1][m3-1]=0;

gotoxy(2*m3,n3);

打印(“ “);

m3=0,n3=0;

打印事物();

刷新地图();

否则,如果(事物[n3-1][m3-1]==2)

事物[n3-1][m3-1]=1;

m3=0,n3=0;//子弹消失

打印_thing();

刷新地图();

否则,如果(事物[n3-1][m3-1]==3)

事物[n3-1][m3-1]=2;

m3=0,n3=0;//子弹消失

打印_thing();

刷新地图();

else if(thing[n3-1][m3-1]==4) //此方块不受子弹影响

m3=0,n3=0;//子弹消失

游戏源码能干嘛_源码开发游戏有哪些_游戏开发源码

文章来源:https://mp.weixin.qq.com/s?src=3×tamp=1719365820&ver=1&signature=a9qZfqQAJWOV2H4kVzIWY9LeFX*fxgcSvwy0vkuBhfIM2eErfmIjCW3qqO7HO7oqOXB3MHF6ROhU7XVwouj0zLi2eAHFPn-1t6tvgBFhl5mA*I63DvZ8IUIBEUwFWaYplJF2UZERcRaMRAsRdc73zoqYWAJg3o3-2HTejjYXwPQ=