Пример #1
0
    //创建方块对象
    public void SpawnNewPiece(int x, int y, CodeType type)
    {
        GameObject code = Instantiate(piecePrefabDict[type], NumToVector(x, y), Quaternion.identity);

        code.transform.parent = transform;

        CodePrefab codePrefab = code.GetComponent <CodePrefab>();

        codePrefab.initPos(x, y, this, type);

        gridCodes[x, y] = codePrefab;
    }
Пример #2
0
    //行单位填充空节点
    private bool fillRow()
    {
        //用于判断是否全部填充
        bool isNeed = true;

        for (int i = 0; i < Grid_H; i++)
        {
            for (int y = 0; y < Grid_V; y++)
            {
                //判断当前结点是否为空节点
                if (gridCodes[i, y].getCodeType == CodeType.EMPTY)
                {
                    isNeed = false;

                    Destroy(gridCodes[i, y].gameObject);

                    GameObject code = Instantiate(piecePrefabDict[CodeType.NORMAL], NumToVector(i, -1), Quaternion.identity);

                    code.transform.parent = transform;

                    CodePrefab codePrefab = code.GetComponent <CodePrefab>();

                    codePrefab.initPos(i, -1, this, CodeType.NORMAL);

                    codePrefab.getColorComponent.setRangeSprite();

                    for (int c = y - 1; c >= 0; c--)
                    {
                        gridCodes[i, c].getMoveComponent.MoveToPos(i, c + 1, fillTime);

                        gridCodes[i, c + 1] = gridCodes[i, c];
                    }

                    codePrefab.getMoveComponent.MoveToPos(i, 0, fillTime);

                    gridCodes[i, 0] = codePrefab;

                    break;
                }
            }
        }

        return(isNeed);
    }