地图结构体
地图结构体包含可格子数组、地图初始化构造函数、画地图的函数方法。
地图结构体
struct Map
{
public Grid[] grids;//声明一个变量类型为Grid的数组在结构体中不用初始化
public Map(int x,int y,int num) // 创建构造函数,传入下x,y作为坐标参数,num作为格子数量参数
{
grids=new Grid[num];
//位置索引
int indexX=0,indexY=0;
//X步长
int stepX=2;
Random r = new Random();
int gridsProp;
for(int i =0 ;i<num;i++)
{
//初始化格子类型
gridsProp=r.Next(0,101);
//普通格子,有85%为普通格子,且第一格和最后一格必须是普通格子
if(gridsProp<85||i==0||i==num-1)
{
grids[i].type=E_Grid_Type.Normal;
}
//炸弹格子
if(gridsProp>=85&&gridsProp<90)
{
grids[i].type=E_Grid_Type.Bomb;
}
//暂停格子
if(gridsProp>=90&&gridsProp<95)
{
grids[i].type=E_Grid_Type.Pause;
}
//隧道格子
if(gridsProp>=95&&gridsProp<101)
{
grids[i].type=E_Grid_Type.Tunnel;
}
//格子位置初始化
grids[i].pos=new Vector2(x,y);
if (indexX==10)
{
y++;
indexY++;
if(indexY==2)
{
indexX==0;
stepX=-stepX;
}
}
else
{
x+=2;
indexX++;
}
}
}
public void DrawMap()//画地图的函数方法
{
for(int i = 0 ;i<grids.Length;i++)
grids[i].Draw();
}
}

用格子x的步长代替x的坐标来处理x的步进问题

浙公网安备 33010602011771号