コード例 #1
0
        private static TileRect GetCornerRect(LevelCorner corner, int width, int height, int size)
        {
            int minX, maxX, minY, maxY;

            if (corner.IsSouth())
            {
                minY = 0;
                maxY = size - 1;
            }
            else
            {
                minY = height - size;
                maxY = height - 1;
            }

            if (corner.IsEast())
            {
                minX = 0;
                maxX = size - 1;
            }
            else
            {
                minX = width - size;
                maxX = width - 1;
            }

            var rect = new TileRect(minX, minY, maxX, maxY);

            rect.Clamp(width, height);
            return(rect);
        }
コード例 #2
0
        public static bool IsWest(this LevelCorner corner)
        {
            switch (corner)
            {
            case LevelCorner.NorthEast:
            case LevelCorner.SouthEast:
                return(false);

            case LevelCorner.NorthWest:
            case LevelCorner.SouthWest:
                return(true);

            default:
                throw new ArgumentOutOfRangeException(nameof(corner), corner, null);
            }
        }
コード例 #3
0
    void Update()
    {
        if (running)
        {
            return;
        }

        direction = new Vector3(0, 0, 0);
        origin    = transform.position;


        float movement = InputMapping.GetAction(Actions.Horizontal);           //Input.GetAxis("Horizontal");

//		Debug.Log (movement);

        if (movement == 0)
        {
            return;
        }
        else if (movement > 0)
        {
            ++selectedIsland;

            if (selectedIsland > numberOfIsles - 1)
            {
                selectedIsland--;
                return;
            }

            selectors[selectedIsland - 1].SetActive(false);
        }
        else if (movement < 0)
        {
            selectors[selectedIsland].SetActive(false);
            --selectedIsland;

            if (selectedIsland < 0)
            {
                selectedIsland = 0;
                return;
            }

            selectors[selectedIsland + 1].SetActive(false);
        }

        if (selectedIsland == 0)
        {
            corner = LevelCorner.Left;
        }
        else if (selectedIsland == numberOfIsles - 1)
        {
            corner = LevelCorner.Right;
        }
        else
        {
            corner = LevelCorner.None;
        }

        running       = true;
        tweenPos.from = origin;
        tweenPos.to   = new Vector3(islands[selectedIsland].transform.position.x, origin.y, islands[selectedIsland].transform.position.z);
        tweenPos.ResetToBeginning();
        tweenPos.onFinished.Clear();

        previousIsland = currentIsland;
        currentIsland  = islands[selectedIsland].GetComponent <IslandDescriptor>();


        if (islandTransitionStart != null)
        {
            islandTransitionStart(previousIsland, currentIsland, corner);
        }

        EventDelegate.Add(tweenPos.onFinished, OnTweenFinished);
        tweenPos.PlayForward();
    }