if(type[tp].cost>money_red) { if(i==1){create_true_L=1;} else create_true_R=1; return 0; } if(Map[x][y]!=0) { if(i==1){create_true_L=2;} else create_true_R=2; rweapen[number].camp=i; weapen[number].tp=tp; weapen[number].blood=type[tp].blood; weapen[number].speed=type[tp].speed; weapen[number].radius=type[tp].radius; weapen[number].bullet=type[tp].bullet; weapen[number].FiringRate=type[tp].FiringRate; weapen[number].x=x; weapen[number].y=y; weapen[number].status=0; weapen[number].target=-1; if(tp==4){Map[x][y]=3;} else{Map[x][y]=i;} if(i==1) { money_red=money_red-type[tp].cost; number_red_all[0]++; number_red_all[tp]++; } else { money_blue=money_blue-type[tp].cost; number_blue_all[0]++; number_blue_all[tp]++; } number=number+1; return 0; }解释一下这些代码的含义
时间: 2024-04-28 11:25:55 浏览: 10
这段代码是一个游戏中的角色生成函数,主要实现的功能是在指定的坐标上生成一个角色,并将其属性赋值。下面逐行解释代码含义:
1. `if(type[tp].cost>money_red)`:如果角色生成需要的金币数大于红方的金币数,则执行下面的操作。
2. `if(i==1){create_true_L=1;}else create_true_R=1;return 0;`:如果是红方生成角色,则将 `create_true_L` 设为 1,表示生成失败,否则将 `create_true_R` 设为 1,表示生成失败。然后函数返回 0。
3. `if(Map[x][y]!=0)`:如果指定位置已经有角色了,则执行下面的操作。
4. `if(i==1){create_true_L=2;}else create_true_R=2;rweapen[number].camp=i;`:如果是红方生成角色,则将 `create_true_L` 设为 2,表示生成失败,否则将 `create_true_R` 设为 2,表示生成失败。然后将 `rweapen[number].camp` 设为当前阵营。
5. `weapen[number].tp=tp;weapen[number].blood=type[tp].blood;weapen[number].speed=type[tp].speed;weapen[number].radius=type[tp].radius;weapen[number].bullet=type[tp].bullet;weapen[number].FiringRate=type[tp].FiringRate;weapen[number].x=x;weapen[number].y=y;weapen[number].status=0;weapen[number].target=-1;`:将生成的角色的属性赋值给 `weapen[number]` 对象。
6. `if(tp==4){Map[x][y]=3;}else{Map[x][y]=i;}`:如果生成的是炮台,则将地图上的值设为 3,否则设为当前阵营。
7. `if(i==1){money_red=money_red-type[tp].cost;number_red_all[0]++;number_red_all[tp]++;}else{money_blue=money_blue-type[tp].cost;number_blue_all[0]++;number_blue_all[tp]++;}`:如果是红方生成角色,则将红方的金币数减去生成所需的金币数,并将红方的总角色数和当前角色类型数加 1,否则将蓝方的金币数减去生成所需的金币数,并将蓝方的总角色数和当前角色类型数加 1。
8. `number=number+1;return 0;`:将角色数量加 1,并返回 0。