Ejemplo n.º 1
0
    void CreatePuzzle()
    {
        blocks = new BlockEvent[blocksPerLine, blocksPerLine];
        Texture2D[,] imageSlices = ImageSlicer.GetSlices(image, blocksPerLine);
        for (int i = 0; i < blocksPerLine; i++)
        {
            for (int j = 0; j < blocksPerLine; j++)
            {
                GameObject blockObject = GameObject.CreatePrimitive(PrimitiveType.Quad);
                blockObject.transform.position = -Vector2.one * (blocksPerLine - 1) * 0.5f + new Vector2(j, i) + new Vector2(transform.position.x, transform.position.y);
                blockObject.transform.position = new Vector3(blockObject.transform.position.x, blockObject.transform.position.y, transform.position.z - 0.1f);
                blockObject.transform.parent   = transform;

                BlockEvent block = blockObject.AddComponent <BlockEvent>();
                block.OnBlockPressed   += PlayerMouseBlockInput;
                block.OnFinishedMoving += OnBlockFinishedMoving;
                block.Init(new Vector2Int(j, i), imageSlices[j, i]);
                blocks[j, i] = block;

                if (i == 0 && j == blocksPerLine - 1)
                {
                    emptyBlock = block;
                }
            }
        }
        cam.orthographicSize = blocksPerLine * 0.55f;
        inputs = new Queue <BlockEvent>();
    }