﻿# 01. GridKit 二维格子数据结构

在做游戏的过程中，我们经常需要处理二维格子类的数据，比如消除类游戏、俄罗斯方块、各种棋类游戏，还有我们最常用的 Tilemap 的地块数据，这些都需要二维格子数据结构。

而在 GameMaker Studio 引擎中，这样的数据结构直接在引擎层面提供，名字叫做 ds_grid。

受到 GameMaker Stdio 的 ds_grid 启发，QFramework 也实现了一个类似的数据结构，名字叫做 EasyGrid，示例代码如下:
``` csharp
using UnityEngine;

namespace QFramework.Example
{
    public class GridKitExample : MonoBehaviour
    {
        // Start is called before the first frame update
        void Start()
        {
            var grid = new EasyGrid<string>(4, 4);

            grid.Fill("Empty");
            
            grid[2, 3] = "Hello";

            grid.ForEach((x, y, content) => Debug.Log($"({x},{y}):{content})");

            grid.Clear();
        }
    }
}
```

运行后，代码如下:
``` 
(0,0):Empty
(0,1):Empty
(0,2):Empty
(0,3):Empty
(1,0):Empty
(1,1):Empty
(1,2):Empty
(1,3):Empty
(2,0):Empty
(2,1):Empty
(2,2):Empty
(2,3):Hello
(3,0):Empty
(3,1):Empty
(3,2):Empty
(3,3):Empty
```

好了这个就是关于 GridKit 的简单介绍。


本文由 QFramework 教程年会员赞助，地址：[https://www.gamepixedu.com/goods/show/55](https://www.gamepixedu.com/goods/show/55)

* QFramework 主页：[qframework.cn](https://qframework.cn)
* QFramework 交流群: 541745166
* QFramework Github 地址: <https://github.com/liangxiegame/qframework>
* QFramework Gitee 地址：<https://gitee.com/liangxiegame/QFramework>