Beispiel #1
0
        bool CheckCubeMoveable(Vector3 moveDirect)
        {
            for (int i = 0; i < currentControlCubes.Length; i++)
            {
                var newPos = VectorUtility.AddPosition(PositionUtils.TransIndexToUnitPosition(currentControlCubes[i].GetComponent <GameTileView>().Index), moveDirect);

                if (newPos.x < 0 || newPos.x >= sizeX || newPos.y < 0)
                {
                    return(false);
                }

                if (newPos.y < sizeY && !CubeDataManager.Instance.IsEmpty((int)newPos.x, (int)newPos.y))
                {
                    return(false);
                }
            }
            return(true);
        }
Beispiel #2
0
        public bool UpdateMoveCubeWithUnitTime()
        {
            if (CubeDataManager.Instance.UpdateLock)
            {
                return(false);
            }

            if (CheckCubeMoveable(Vector3.down))
            {
                foreach (var cube in currentControlCubes)
                {
                    var newPos = VectorUtility.AddPosition(PositionUtils.TransIndexToUnitPosition(cube.GetComponent <GameTileView>().Index), Vector3.down);
                    cube.GetComponent <GameTileView>().UpdatePositionByIndex(cube.GetComponent <GameTileView>().Index, PositionUtils.TransUnitPositionToIndex(newPos));
                }

                return(true);
            }

            return(false);
        }
Beispiel #3
0
        public bool MoveCube(Vector3 moveDirect)
        {
            if (CubeDataManager.Instance.UpdateLock)
            {
                return(false);
            }

            if (CheckCubeMoveable(moveDirect))
            {
                foreach (var cube in currentControlCubes)
                {
                    var newPos = VectorUtility.AddPosition(PositionUtils.TransIndexToUnitPosition(cube.GetComponent <GameTileView>().Index), moveDirect);
                    cube.GetComponent <GameTileView>().UpdateTartgetPosition(PositionUtils.TransUnitPositionToPosition(moveDirect));
                    cube.GetComponent <GameTileView>().Index = PositionUtils.TransUnitPositionToIndex(newPos);
                }

                changeDirectBufferTime = 0;

                return(true);
            }

            return(false);
        }