コード例 #1
0
    void CreateBlockList()
    {
        ShapeBlocks = new List <ShapeBlock> ();
        List <Transform> shapeAllBlocks = transform.GetComponentsInChildren <Transform> ().ToList();

        if (shapeAllBlocks.Contains(transform))
        {
            shapeAllBlocks.Remove(transform);
        }

        foreach (Transform block in shapeAllBlocks)
        {
            string[] blockNameSplit = block.name.Split('-');

            if (blockNameSplit.Length == 3)
            {
                int rowID    = blockNameSplit [1].TryParseInt();
                int columnID = blockNameSplit [2].TryParseInt();

                ShapeBlock thisBlock = new ShapeBlock(block, rowID, columnID);
                if (!ShapeBlocks.Contains(thisBlock))
                {
                    ShapeBlocks.Add(thisBlock);
                }
            }
        }
    }
コード例 #2
0
    void Start()
    {
        CreateBlockList();

        firstBlock   = ShapeBlocks [0];
        blockImage   = firstBlock.block.GetComponent <Image>().sprite;
        startOffsetX = firstBlock.rowID;
        startOffsetY = firstBlock.columnID;
    }
コード例 #3
0
    public void CrateBlock(int color_id = 0, int _shapeID = 0)
    {
        shapeID = _shapeID;
        CreateBlockList(color_id);

        //첫번째 블럭으로 위치 계산
        firstBlock   = shapeBlocks[0];
        blockImage   = firstBlock.block.GetComponent <Image>().sprite;
        startOffsetX = firstBlock.rowID;
        startOffsetY = firstBlock.columnID;
    }
コード例 #4
0
    public void Set_Rotation()
    {
        Rotate();

        CreateBlockList(this.colorID);

        //첫번째 블럭으로 위치 계산
        firstBlock   = shapeBlocks[0];
        blockImage   = firstBlock.block.GetComponent <Image>().sprite;
        startOffsetX = firstBlock.rowID;
        startOffsetY = firstBlock.columnID;
    }
コード例 #5
0
    /// <summary>
    /// 자식 블럭 생성
    /// </summary>
    void CreateBlockList(int color_id = 0)
    {
        shapeBlocks = new List <ShapeBlock>();
        List <Transform> shapeAllBlocks = transform.GetComponentsInChildren <Transform>().ToList();

        //내 자신 지우기
        if (shapeAllBlocks.Contains(transform))
        {
            shapeAllBlocks.Remove(transform);
        }

        int random_colorID = UnityEngine.Random.Range(0, 6);

        colorID = random_colorID + 1;

        if (color_id != 0)
        {
            colorID = color_id;
        }

        //자식 블럭 좌표 저장
        foreach (Transform block in shapeAllBlocks)
        {
            string[] blockNameSplit = block.name.Split('-');

            block.GetComponent <Image>().sprite = UIManager.Instance.Sp_Blocks[colorID - 1];

            if (blockNameSplit.Length == 3)
            {
                int rowID    = int.Parse(blockNameSplit[1]);
                int columnID = int.Parse(blockNameSplit[2]);

                ShapeBlock thisBlock = new ShapeBlock(block, rowID, columnID, colorID);
                if (!shapeBlocks.Contains(thisBlock))
                {
                    shapeBlocks.Add(thisBlock);
                }
            }
        }
    }
コード例 #6
0
        public static void TestPrototype()
        {
            AbstractFactory abstractShapeFactory = FactoryProducer.GetFactory(true);
            BaseShape       shape = abstractShapeFactory.CreateEntityShape(Shape.HealthCrystal, 2, 5);

            BaseShape shallow = shape.Clone();    // Shallow Copy
            BaseShape deep    = shape.DeepCopy(); // Deep Copy

            ShapeBlock ba = shape.GetShapes().First();
            ShapeBlock sh = shallow.GetShapes().First();
            ShapeBlock de = deep.GetShapes().First();

            Logging.Instance.Write("Before");
            Logging.Instance.Write("Base: " + shape.GetShapes().GetHashCode().ToString() + "(OffsetX: " + ba.OffsetX + ")");
            Logging.Instance.Write("Shallow: " + shallow.GetShapes().GetHashCode().ToString() + " (OffsetX: " + sh.OffsetX + ")");
            Logging.Instance.Write("Deep: " + deep.GetShapes().GetHashCode().ToString() + " (OffsetX: " + de.OffsetX + ")");

            ba.OffsetX = 10;

            Logging.Instance.Write("After");
            Logging.Instance.Write("Base: " + shape.GetShapes().GetHashCode().ToString() + " (OffsetX: " + ba.OffsetX + ")");
            Logging.Instance.Write("Shallow: " + shallow.GetShapes().GetHashCode().ToString() + " (OffsetX: " + sh.OffsetX + ")");
            Logging.Instance.Write("Deep: " + deep.GetShapes().GetHashCode().ToString() + " (OffsetX: " + de.OffsetX + ")");
        }