地图结构体

地图结构体包含可格子数组地图初始化构造函数画地图的函数方法

地图结构体
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();
    }
}

img

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

posted @   cannedmint  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示