Example #1
0
    public void LoadBlock(Map.SAVEBLOCKDATA SaveMapdata, bool InGameLoad = false)
    {
        row = SaveMapdata.row;
        col = SaveMapdata.col;

        blocks = new GameObject[row * col];

        Transform go_parent = this.gameObject.transform;

        float xposInterval = Mathf.Sqrt(BLOCKWIDTH / 2);
        float startxpos    = (row * xposInterval) / 2 * -1 + (xposInterval / 2);
        float startypos    = (row * BLOCKHEIGHT) / 2;
        float halfheight   = BLOCKHEIGHT / 2;

        for (int r = 0; r < row; r++)
        {
            for (int c = 0; c < col; c++)
            {
                if (InGameLoad)
                {
                    if (SaveMapdata.blocks[(r * row) + (c)].type == Map.BLOCKTYPPE.NONE)
                    {
                        blocks[(r * row) + (c)] = null;
                        continue;
                    }
                }
                GameObject HiveGo = Instantiate <GameObject>(Resources.Load <GameObject>(BlockHivePath));
                HiveGo.transform.parent        = go_parent;
                HiveGo.transform.localPosition = Vector3.zero;
                float xpos = startxpos + (xposInterval * r);
                HiveGo.name = ((r * row) + c).ToString();
                int yInterval = r % 2;

                float ypos = startypos - (BLOCKHEIGHT * c) - (halfheight * yInterval);
                HiveGo.transform.localPosition = new Vector3(xpos, ypos, 0);

                blocks[(r * row) + (c)] = HiveGo;

                GameObject BlockGo = Instantiate <GameObject>(Resources.Load <GameObject>(BlockObjPath));

                BlockHive hive = HiveGo.GetComponent <BlockHive>();
                hive.SetBlockObject(BlockGo);
                hive.SetBlockColor(SaveMapdata.blocks[(r * row) + (c)].color);
                hive.SetBlockType(SaveMapdata.blocks[(r * row) + (c)].type);

                if (Game.instance != null)
                {
                    Game.instance.BlockPool.AddObjectNuse(BlockGo);
                }
            }
        }
    }
Example #2
0
    IEnumerator CreateBlock()
    {
        while (true)
        {
            if (CreateBlockCount == 0)
            {
                break;
            }
            if (DropAnimaionCount == 0)
            {
                GameObject go = BlockPool.GetPool();

                BlockHive hiveinfo = CreateBlockPosition[0].GetComponent <BlockHive>();
                hiveinfo.SetBlockObject(go);
                hiveinfo.SetBlockType(Map.BLOCKTYPPE.BLOCK);
                hiveinfo.SetBlockColor((Map.BLOCKCOLOR)GetRandoomColor());
                go.transform.parent        = CreateBlockPosition[0].transform;
                go.transform.localPosition = Vector3.zero;
                go.SetActive(true);

                CreateBlockCount--;

                DropBlock();
                while (true)
                {
                    if (DropAnimaionCount == 0)
                    {
                        if (!WaterDrop())
                        {
                            break;
                        }
                    }
                    yield return(null);
                }

                MatchCheck();

                if (CreateBlockCount <= 0)
                {
                    break;
                }
            }

            yield return(null);
        }

        MoveDisAble = false;
    }
Example #3
0
    public void CreateBlock(int row, int col)
    {
        this.row = row;
        this.col = col;

        blocks = new GameObject[row * col];

        Transform go_parent = this.gameObject.transform;

        float xposInterval = Mathf.Sqrt(BLOCKWIDTH / 2);
        float startxpos    = (row * xposInterval) / 2 * -1 + (xposInterval / 2);
        float startypos    = (row * BLOCKHEIGHT) / 2;
        float halfheight   = BLOCKHEIGHT / 2;

        for (int r = 0; r < row; r++)
        {
            for (int c = 0; c < col; c++)
            {
                GameObject HiveGo = Instantiate <GameObject>(Resources.Load <GameObject>(BlockHivePath));
                HiveGo.transform.parent        = go_parent;
                HiveGo.transform.localPosition = Vector3.zero;
                float xpos = startxpos + (xposInterval * r);
                HiveGo.name = ((r * row) + c).ToString();
                int yInterval = r % 2;

                float ypos = startypos - (BLOCKHEIGHT * c) - (halfheight * yInterval);
                HiveGo.transform.localPosition = new Vector3(xpos, ypos, 0);

                blocks[(r * row) + (c)] = HiveGo;

                GameObject BlockGo = Instantiate <GameObject>(Resources.Load <GameObject>(BlockObjPath));

                BlockHive hive = HiveGo.GetComponent <BlockHive>();
                hive.SetBlockObject(BlockGo);
                //hive.SetBlockColor(SaveMapdata.blocks[(r * row) + (c)].color);
                //hive.SetBlockType(SaveMapdata.blocks[(r * row) + (c)].type);

                blocks[(r * row) + (c)] = HiveGo;
            }
        }
    }