コード例 #1
0
ファイル: CartoonUI.cs プロジェクト: kingpowervrg/my_seeker
        private bool JudgeCanDrag(CartoonLongRotateView view_, ENUM_ITEM_DIRECTION neighbour_dir)
        {
            Vector3[] fourCornersArray = new Vector3[4];
            view_.m_rect.GetWorldCorners(fourCornersArray);

            //Vector2[] fourScreenCornersArray = new Vector2[4];
            //for (int i = 0; i < fourCornersArray.Length; ++i)
            //{
            //    fourScreenCornersArray[i] = m_cam.WorldToScreenPoint(fourCornersArray[i]);
            //}

            switch (neighbour_dir)
            {
            case ENUM_ITEM_DIRECTION.E_UP:
            case ENUM_ITEM_DIRECTION.E_DOWN:
            {
                return(JudgeOverflow(fourCornersArray, m_play_rect_4_corners, ENUM_JUDGE_TYPE.E_Y));
            }

            case ENUM_ITEM_DIRECTION.E_LEFT:
            case ENUM_ITEM_DIRECTION.E_RIGHT:
            {
                return(JudgeOverflow(fourCornersArray, m_play_rect_4_corners, ENUM_JUDGE_TYPE.E_X));
            }

            default:
                return(false);
            }
        }
コード例 #2
0
    private void Dragging(CartoonLongRotateView view_, CartoonRotate model_)
    {
        int exchanged_index = -1;

        switch (view_.m_dir)
        {
        case ENUM_ITEM_DIRECTION.E_LEFT:
            exchanged_index = CartoonUtil.GetLeftIndex(view_.Item_index, model_.m_width_unit, this.anchor_w_size, this.anchor_h_size);
            break;

        case ENUM_ITEM_DIRECTION.E_UP:
            exchanged_index = CartoonUtil.GetUpIndex(view_.Item_index, model_.m_width_unit, this.anchor_w_size, this.anchor_h_size);
            break;

        case ENUM_ITEM_DIRECTION.E_RIGHT:
            exchanged_index = CartoonUtil.GetRightIndex(view_.Item_index, model_.m_width_unit, this.anchor_w_size, this.anchor_h_size);
            break;

        case ENUM_ITEM_DIRECTION.E_DOWN:
            exchanged_index = CartoonUtil.GetDownIndex(view_.Item_index, model_.m_width_unit, this.anchor_w_size, this.anchor_h_size);
            break;
        }

        if (-1 == exchanged_index)
        {
            return;
        }

        if (false == this.CanBeExchanged(exchanged_index))
        {
            return;
        }

        AnchorPos exchanged    = this.m_anchor_positions[exchanged_index];
        int       exchanged_id = exchanged.cur_ocuppied_cartoon_item_id;

        CartoonFixedView exchange_view = m_cartoon_views[exchanged_id];
        CartoonFixed     exchange_item = m_cartoon.m_cartoon_items[exchanged_id];

        //我的钉子点不动,尾巴被替换
        int my_tail_index = view_.Tail_index;
        int my_id         = model_.m_item_id;

        //来我的位置
        this.ChangeAnchorPos(exchange_view, exchange_item, my_tail_index, m_anchor_positions[my_tail_index].m_pos);

        //目的地记录换成我
        m_anchor_positions[exchanged_index].cur_ocuppied_cartoon_item_id = my_id;
        //我的anchor记录换成目的地的
        view_.Tail_index = exchanged_index;
    }
コード例 #3
0
ファイル: CartoonUI.cs プロジェクト: kingpowervrg/my_seeker
        //private bool CanDrag(CartoonLongRotateView view_, CartoonRotate model_, ENUM_ROTATE_DIR r_dir_)
        //{

        //    switch (view_.m_dir)
        //    {
        //        case ENUM_ITEM_DIRECTION.E_LEFT:
        //            {
        //                switch (r_dir_)
        //                {
        //                    case ENUM_ROTATE_DIR.E_CLOCKWISE:
        //                        {
        //                            //up
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_UP);
        //                        }
        //                    case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
        //                        {
        //                            //down
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_DOWN);
        //                        }
        //                }
        //            }
        //            break;
        //        case ENUM_ITEM_DIRECTION.E_UP:
        //            {
        //                switch (r_dir_)
        //                {
        //                    case ENUM_ROTATE_DIR.E_CLOCKWISE:
        //                        {
        //                            //right
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_RIGHT);
        //                        }
        //                    case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
        //                        {
        //                            //left
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_LEFT);
        //                        }
        //                }
        //            }
        //            break;
        //        case ENUM_ITEM_DIRECTION.E_RIGHT:
        //            {
        //                switch (r_dir_)
        //                {
        //                    case ENUM_ROTATE_DIR.E_CLOCKWISE:
        //                        {
        //                            //down
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_DOWN);
        //                        }
        //                    case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
        //                        {
        //                            //up
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_UP);
        //                        }
        //                }
        //            }
        //            break;
        //        case ENUM_ITEM_DIRECTION.E_DOWN:
        //            {
        //                switch (r_dir_)
        //                {
        //                    case ENUM_ROTATE_DIR.E_CLOCKWISE:
        //                        {
        //                            //left
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_LEFT);
        //                        }
        //                    case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
        //                        {
        //                            //right
        //                            return JudgeCanDrag(view_.Item_index, model_.m_width_unit, ENUM_ITEM_DIRECTION.E_RIGHT);
        //                        }
        //                }
        //            }
        //            break;

        //    }

        //    return false;
        //}


        private bool CanDrag(CartoonLongRotateView view_, CartoonRotate model_, ENUM_ROTATE_DIR r_dir_)
        {
            switch (view_.m_dir)
            {
            case ENUM_ITEM_DIRECTION.E_LEFT:
            {
                switch (r_dir_)
                {
                case ENUM_ROTATE_DIR.E_CLOCKWISE:
                {
                    //up
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_UP));
                }

                case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
                {
                    //down
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_DOWN));
                }
                }
            }
            break;

            case ENUM_ITEM_DIRECTION.E_UP:
            {
                switch (r_dir_)
                {
                case ENUM_ROTATE_DIR.E_CLOCKWISE:
                {
                    //right
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_RIGHT));
                }

                case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
                {
                    //left
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_LEFT));
                }
                }
            }
            break;

            case ENUM_ITEM_DIRECTION.E_RIGHT:
            {
                switch (r_dir_)
                {
                case ENUM_ROTATE_DIR.E_CLOCKWISE:
                {
                    //down
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_DOWN));
                }

                case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
                {
                    //up
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_UP));
                }
                }
            }
            break;

            case ENUM_ITEM_DIRECTION.E_DOWN:
            {
                switch (r_dir_)
                {
                case ENUM_ROTATE_DIR.E_CLOCKWISE:
                {
                    //left
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_LEFT));
                }

                case ENUM_ROTATE_DIR.E_ANTI_CLOCKWISE:
                {
                    //right
                    return(JudgeCanDrag(view_, ENUM_ITEM_DIRECTION.E_RIGHT));
                }
                }
            }
            break;
            }

            return(false);
        }