Example #1
0
    public void Move(SLIDE_DIRECTION dir)
    {
        switch (dir)
        {
        case SLIDE_DIRECTION.TOP:
            transform.DOKill(true);
            transform.DOLocalMoveY(transform.localPosition.y + size, time);
            break;

        case SLIDE_DIRECTION.DOWN:
            transform.DOKill(true);
            transform.DOLocalMoveY(transform.localPosition.y - size, time);
            break;

        case SLIDE_DIRECTION.LEFT:
            transform.DOKill(true);
            transform.DOLocalMoveX(transform.localPosition.x - size, time);
            break;

        case SLIDE_DIRECTION.RIGHT:
            transform.DOKill(true);
            transform.DOLocalMoveX(transform.localPosition.x + size, time);
            break;
        }
    }
Example #2
0
 public virtual void Show(SLIDE_DIRECTION dir)
 {
     gameObject.SetActive(true);
     transform.DOKill();
     transform.localPosition = new Vector3(dir == SLIDE_DIRECTION.LEFT ? 480f : -480f, 40f, 10);
     transform.DOLocalMoveX(0, slideTime).SetEase(ease);
 }
Example #3
0
 public override void Show(SLIDE_DIRECTION dir)
 {
     base.Show(dir);
     if (isActiveAndEnabled)
     {
         StartCoroutine("Play");
     }
 }
Example #4
0
 public void slide(SLIDE_DIRECTION direction)
 {
     if (sliding == SLIDE_DIRECTION.NO_SLIDE)
     {
         sliding = direction;
         // create a timer to update the position and draw the next background chunk
         slide_timer.Start();
     }
 }
Example #5
0
 public void slide(SLIDE_DIRECTION direction)
 {
     if (sliding == SLIDE_DIRECTION.NO_SLIDE)
     {
         sliding = direction;
         // create a timer to update the position and draw the next background chunk
         slide_timer.Start();
     }
 }
Example #6
0
        private void slide_timer_event(object source, ElapsedEventArgs e)
        {
            switch (sliding)
            {
            case SLIDE_DIRECTION.SLIDE_LEFT:
                spritePos = new Vector2(spritePos.X - 15, spritePos.Y);     // adjust the value here for animation speed
                if (spritePos.X < -spriteSize.X)
                {
                    sliding = SLIDE_DIRECTION.NO_SLIDE;
                    slide_timer.Stop();
                    spritePos = new Vector2(0, 0);
                }
                break;

            case SLIDE_DIRECTION.SLIDE_RIGHT:
                spritePos = new Vector2(spritePos.X + 15, spritePos.Y);     // adjust the value here for animation speed
                if (spritePos.X > spriteSize.X)
                {
                    sliding = SLIDE_DIRECTION.NO_SLIDE;
                    slide_timer.Stop();
                    spritePos = new Vector2(0, 0);
                }
                break;

            case SLIDE_DIRECTION.SLIDE_UP:
                spritePos = new Vector2(spritePos.X, spritePos.Y - 10);     // adjust the value here for animation speed
                if (spritePos.Y < -spriteSize.Y)
                {
                    sliding = SLIDE_DIRECTION.NO_SLIDE;
                    slide_timer.Stop();
                    spritePos = new Vector2(0, 0);
                }
                break;

            case SLIDE_DIRECTION.SLIDE_DOWN:
                spritePos = new Vector2(spritePos.X, spritePos.Y + 10);     // adjust the value here for animation speed
                if (spritePos.Y > spriteSize.Y)
                {
                    sliding = SLIDE_DIRECTION.NO_SLIDE;
                    slide_timer.Stop();
                    spritePos = new Vector2(0, 0);
                }
                break;

            default:
                break;
            }
        }
Example #7
0
 private void MoveItem(float angle)
 {
     if (angle < 135 && angle >= 45)
     {
         slideDirection = SLIDE_DIRECTION.TOP;
         if (onTopSlide != null)
         {
             onTopSlide.Execute();
         }
     }
     else if (angle < 225 && angle >= 135)
     {
         slideDirection = SLIDE_DIRECTION.LEFT;
         if (onLeftSlide != null)
         {
             onLeftSlide.Execute();
         }
     }
     else if (angle < 315 && angle >= 225)
     {
         slideDirection = SLIDE_DIRECTION.DOWN;
         if (onDownSlide != null)
         {
             onDownSlide.Execute();
         }
     }
     else if (angle < 45 && angle >= 0 || angle >= 315)
     {
         slideDirection = SLIDE_DIRECTION.RIGHT;
         if (onRightSlide != null)
         {
             onRightSlide.Execute();
         }
     }
     if (onAnySlide != null)
     {
         onAnySlide.Execute();
     }
 }
Example #8
0
 public override void Hide(SLIDE_DIRECTION dir)
 {
     base.Hide(dir);
     StopAllCoroutines();
     anim.DOKill(true);
 }
Example #9
0
    public void MoveButtons(GameButton button, SLIDE_DIRECTION dir)
    {
        int row = (buttonCount - (buttonCount - button.index)) / fieldSize;

        int[] indexes      = new int[(int)Mathf.Sqrt(buttonCount)];
        int   currentIndex = 0;

        for (int i = 0; i < indexes.Length; i++)
        {
            indexes[i] = -1;
        }

        switch (dir)
        {
        case SLIDE_DIRECTION.TOP:
            for (int i = button.index; i >= 0; i -= fieldSize)
            {
                if (i - fieldSize < 0)     //out of bounds
                {
                    if (buttons[i].isEmptyCell)
                    {
                        GameButton temp = buttons[emptyButtonIndex];
                        for (int j = indexes.Length - 1; j >= 0; j--)
                        {
                            if (indexes[j] >= 0)
                            {
                                buttons[indexes[j] - fieldSize] = buttons[indexes[j]];
                                buttons[indexes[j] - fieldSize].SetIndex(indexes[j] - fieldSize);
                                buttons[indexes[j]].Move(dir);
                            }
                        }
                        if (indexes[0] >= 0)
                        {
                            buttons[indexes[0]] = temp;
                            emptyButtonIndex    = indexes[0];
                            temp.SetIndex(emptyButtonIndex);
                        }
                        else
                        {
                            buttons[i].Move(dir);
                        }
                        break;
                    }
                    else
                    {
                        break;
                    }
                }
                else if (!buttons[i].isEmptyCell)
                {
                    indexes[currentIndex++] = buttons[i].index;
                }
                else if (buttons[i].isEmptyCell)
                {
                    GameButton temp = buttons[emptyButtonIndex];
                    for (int j = indexes.Length - 1; j >= 0; j--)
                    {
                        if (indexes[j] >= 0)
                        {
                            buttons[indexes[j] - fieldSize] = buttons[indexes[j]];
                            buttons[indexes[j] - fieldSize].SetIndex(indexes[j] - fieldSize);
                            buttons[indexes[j]].Move(dir);
                        }
                    }
                    if (indexes[0] >= 0)
                    {
                        buttons[indexes[0]] = temp;
                        emptyButtonIndex    = indexes[0];
                        temp.SetIndex(emptyButtonIndex);
                    }
                    else
                    {
                        buttons[i].Move(dir);
                    }
                    break;
                }
            }
            break;

        case SLIDE_DIRECTION.DOWN:
            for (int i = button.index; i < buttonCount; i += fieldSize)
            {
                if (i + fieldSize >= buttonCount)
                {
                    if (buttons[i].isEmptyCell)
                    {
                        GameButton temp = buttons[emptyButtonIndex];
                        for (int j = indexes.Length - 1; j >= 0; j--)
                        {
                            if (indexes[j] >= 0)
                            {
                                buttons[indexes[j] + fieldSize] = buttons[indexes[j]];
                                buttons[indexes[j] + fieldSize].SetIndex(indexes[j] + fieldSize);
                                buttons[indexes[j]].Move(dir);
                            }
                        }
                        if (indexes[0] >= 0)
                        {
                            buttons[indexes[0]] = temp;
                            emptyButtonIndex    = indexes[0];
                            temp.SetIndex(emptyButtonIndex);
                        }
                        else
                        {
                            buttons[i].Move(dir);
                        }
                        break;
                    }
                    else
                    {
                        break;
                    }
                }
                else if (!buttons[i].isEmptyCell)
                {
                    indexes[currentIndex++] = buttons[i].index;
                }
                if (buttons[i].isEmptyCell)
                {
                    GameButton temp = buttons[emptyButtonIndex];
                    for (int j = indexes.Length - 1; j >= 0; j--)
                    {
                        if (indexes[j] >= 0)
                        {
                            buttons[indexes[j] + fieldSize] = buttons[indexes[j]];
                            buttons[indexes[j] + fieldSize].SetIndex(indexes[j] + fieldSize);
                            buttons[indexes[j]].Move(dir);
                        }
                    }
                    if (indexes[0] >= 0)
                    {
                        buttons[indexes[0]] = temp;
                        emptyButtonIndex    = indexes[0];
                        temp.SetIndex(emptyButtonIndex);
                    }
                    else
                    {
                        buttons[i].Move(dir);
                    }
                    break;
                }
            }
            break;

        case SLIDE_DIRECTION.LEFT:
            for (int i = button.index; i >= row * fieldSize; i--)
            {
                if ((i - 1 < 0 || i % fieldSize == 0))
                {
                    if (buttons[i].isEmptyCell)
                    {
                        GameButton temp = buttons[emptyButtonIndex];
                        for (int j = indexes.Length - 1; j >= 0; j--)
                        {
                            if (indexes[j] >= 0)
                            {
                                buttons[indexes[j] - 1] = buttons[indexes[j]];
                                buttons[indexes[j] - 1].SetIndex(indexes[j] - 1);
                                buttons[indexes[j]].Move(dir);
                            }
                        }
                        if (indexes[0] >= 0)
                        {
                            buttons[indexes[0]] = temp;
                            emptyButtonIndex    = indexes[0];
                            temp.SetIndex(emptyButtonIndex);
                        }
                        else
                        {
                            buttons[i].Move(dir);
                        }
                        break;
                    }
                    else
                    {
                        break;
                    }
                }
                else if (!buttons[i].isEmptyCell)
                {
                    indexes[currentIndex++] = buttons[i].index;
                }
                if (buttons[i].isEmptyCell)
                {
                    GameButton temp = buttons[emptyButtonIndex];
                    for (int j = indexes.Length - 1; j >= 0; j--)
                    {
                        if (indexes[j] >= 0)
                        {
                            buttons[indexes[j] - 1] = buttons[indexes[j]];
                            buttons[indexes[j] - 1].SetIndex(indexes[j] - 1);
                            buttons[indexes[j]].Move(dir);
                        }
                    }
                    if (indexes[0] >= 0)
                    {
                        buttons[indexes[0]] = temp;
                        emptyButtonIndex    = indexes[0];
                        temp.SetIndex(emptyButtonIndex);
                    }
                    else
                    {
                        buttons[i].Move(dir);
                    }
                    break;
                }
            }
            break;

        case SLIDE_DIRECTION.RIGHT:
            for (int i = button.index; i <= ((row + 1) * fieldSize) - 1; i++)
            {
                if ((i + 1 > buttonCount || (i + 1) % fieldSize == 0))
                {
                    if (buttons[i].isEmptyCell)
                    {
                        GameButton temp = buttons[emptyButtonIndex];
                        for (int j = indexes.Length - 1; j >= 0; j--)
                        {
                            if (indexes[j] >= 0)
                            {
                                buttons[indexes[j] + 1] = buttons[indexes[j]];
                                buttons[indexes[j] + 1].SetIndex(indexes[j] + 1);
                                buttons[indexes[j]].Move(dir);
                            }
                        }
                        if (indexes[0] >= 0)
                        {
                            buttons[indexes[0]] = temp;
                            emptyButtonIndex    = indexes[0];
                            temp.SetIndex(emptyButtonIndex);
                        }
                        else
                        {
                            buttons[i].Move(dir);
                        }
                        break;
                    }
                    else
                    {
                        break;
                    }
                }
                else if (!buttons[i].isEmptyCell)
                {
                    indexes[currentIndex++] = buttons[i].index;
                }
                if (buttons[i].isEmptyCell)
                {
                    GameButton temp = buttons[emptyButtonIndex];
                    for (int j = indexes.Length - 1; j >= 0; j--)
                    {
                        if (indexes[j] >= 0)
                        {
                            buttons[indexes[j] + 1] = buttons[indexes[j]];
                            buttons[indexes[j] + 1].SetIndex(indexes[j] + 1);
                            buttons[indexes[j]].Move(dir);
                        }
                    }
                    if (indexes[0] >= 0)
                    {
                        buttons[indexes[0]] = temp;
                        emptyButtonIndex    = indexes[0];
                        temp.SetIndex(emptyButtonIndex);
                        break;
                    }
                    else
                    {
                        buttons[i].Move(dir);
                    }
                    break;
                }
            }
            break;
        }

        Check();
    }
Example #10
0
 public override void Show(SLIDE_DIRECTION dir)
 {
     base.Show(dir);
     BoardManager.Instance.RefreshField();
 }
Example #11
0
 public virtual void Hide(SLIDE_DIRECTION dir)
 {
     transform.DOKill();
     transform.DOLocalMoveX(dir == SLIDE_DIRECTION.LEFT ? -480f : 480f, slideTime).OnComplete(() => gameObject.SetActive(false)).SetEase(ease);
 }
Example #12
0
 private void slide_timer_event(object source, ElapsedEventArgs e)
 {
     switch(sliding)
     {
         case SLIDE_DIRECTION.SLIDE_LEFT:
             spritePos = new Vector2(spritePos.X - 15, spritePos.Y); // adjust the value here for animation speed
             if (spritePos.X < -spriteSize.X)
             {
                 sliding = SLIDE_DIRECTION.NO_SLIDE;
                 slide_timer.Stop();
                 spritePos = new Vector2(0, 0);
             }
             break;
         case SLIDE_DIRECTION.SLIDE_RIGHT:
             spritePos = new Vector2(spritePos.X + 15, spritePos.Y); // adjust the value here for animation speed
             if (spritePos.X > spriteSize.X)
             {
                 sliding = SLIDE_DIRECTION.NO_SLIDE;
                 slide_timer.Stop();
                 spritePos = new Vector2(0, 0);
             }
             break;
         case SLIDE_DIRECTION.SLIDE_UP:
             spritePos = new Vector2(spritePos.X, spritePos.Y - 10); // adjust the value here for animation speed
             if (spritePos.Y < -spriteSize.Y)
             {
                 sliding = SLIDE_DIRECTION.NO_SLIDE;
                 slide_timer.Stop();
                 spritePos = new Vector2(0, 0);
             }
             break;
         case SLIDE_DIRECTION.SLIDE_DOWN:
             spritePos = new Vector2(spritePos.X, spritePos.Y + 10); // adjust the value here for animation speed
             if (spritePos.Y > spriteSize.Y)
             {
                 sliding = SLIDE_DIRECTION.NO_SLIDE;
                 slide_timer.Stop();
                 spritePos = new Vector2(0, 0);
             }
             break;
         default:
             break;
     }
 }