Пример #1
0
    IEnumerator PuzzleDownMove(GameObject puzzle, float distance, float time, UnityAction afterAnimAction)
    {
        Vector3 finalPos = puzzle.transform.position;

        puzzle.transform.position = puzzle.transform.position + Vector3.up * distance;
        puzzle.SetActive(true);
        Vector3 originPos   = puzzle.transform.position;
        Vector3 moveVec     = finalPos - originPos;
        Vector3 normMoveVec = moveVec.normalized;
        float   speed       = distance / time;

        while (time > 0)
        {
            time -= Time.deltaTime;
            puzzle.transform.position = puzzle.transform.position + normMoveVec * speed * Time.deltaTime;
            yield return(null);
        }
        puzzle.transform.position = finalPos;
        // Debug.Log("finalPos:" + finalPos + " " + Camera.main.WorldToScreenPoint(finalPos));
        puzzle.GetComponent <PuzzleItemUI>().PlaySettleAnim();
        // sparkParticleEffect.transform.position = puzzle.transform.position;
        // sparkParticleEffect.Play();
        DragController.VibrateFeedbackIntern();
        afterAnimAction();
    }
Пример #2
0
    public void InitiateDrag(DragController dragController)
    {
        if (!this.enabled)
        {
            return;                        // no dragging with deactivated Component
        }
        this.dragController = dragController;

        dragged = true;
        if (showAndHideMouseCursor)
        {
            Cursor.visible = false;
        }
        //Debug.Log(gameObject.name + " InitiateDrag()");

        Vector3 cursorScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0f);
        Vector3 cursorPosition    = mainCamera.ScreenToWorldPoint(cursorScreenPoint);

        if (useRigidbody)
        {
            dragInitPosition = rb.position;

            rb.isKinematic = true;
            rb.velocity    = Vector3.zero;
        }
        else
        {
            dragInitPosition = transform.position;
        }

        dragHandleOffset = dragInitPosition - cursorPosition;

        onDragBegin.Invoke();
    }
Пример #3
0
 private void Start()
 {
     DragCollider   = GetComponentInChildren <CircleCollider2D>();
     DragController = FindObjectOfType <DragController>();
     TimeController = FindObjectOfType <TimeController>();
     Dragged        = false;
 }
Пример #4
0
 private void Start()
 {
     _rb             = GetComponent <Rigidbody>();
     _gm             = GameManager.instance;
     _soundManager   = SoundManager.instance;
     _dragController = DragController.instance;
     SetPlayerDir();
 }
Пример #5
0
 // Use this for initialization
 void Awake()
 {
     myRB      = GetComponent <Rigidbody>();
     myDC      = GetComponent <DragController>();
     myEM      = GetComponent <EnergyManager>();
     myNPM     = GetComponent <NetworkPlayerModule>();
     myMPMeter = transform.Find("Canvas").transform.Find("Main Propulsion Meter").GetComponent <RectTransform>();
 }
Пример #6
0
    void Awake()
    {
        Instance = this;

        DragItem.Onbegindrag += DragItem_Onbegindrag;
        DragItem.Onenddrag   += DragItem_Onenddrag;

        tempDragitem.Hide();
    }
Пример #7
0
    private void Start()
    {
        _currentTransform = gameObject.transform as RectTransform;

        if (!_dragController)
        {
            _dragController = UIManager.Instance.DragController;
        }
    }
 protected virtual void StopDrag()
 {
     if (DragController == null)
     {
         return;
     }
     DragController.StopDrag();
     this.dragController = null;
     this.DataGrid.ReleaseMouseCapture();
 }
        protected override void OnColumnsCollectionChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e)
        {
            MyGridControl  grid       = (GridControl as MyGridControl);
            DragController controller = (grid != null) ? grid.GetDragController() : null;

            if (controller != null && controller.IsDragging)
            {
                return;
            }
            base.OnColumnsCollectionChanged(sender, e);
        }
 public void DropRedirect(object sender, DragEventArgs e)
 {
     if (!IsFolder)
     {
         DragController.Drop(sender, e, HierarchyDragController.DropType.NORMAL);
     }
     else
     {
         DragController.Drop(sender, e, HierarchyDragController.DropType.FOLDER);
     }
 }
 void OnMouseMove(object sender, MouseEventArgs e)
 {
     if (this.DragSurface == null)
     {
         return;
     }
     if (DragController != null)
     {
         DragController.Move(e.GetPosition(this.DragSurface));
     }
 }
Пример #12
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
Пример #13
0
    // Use this for initialization
    void Start()
    {
        //myPS = GetComponentInChildren<ParticleSystem>();
        myRB = transform.root.GetComponent <Rigidbody>();
        mySR = GetComponentInChildren <SpriteRenderer>();

        offColor = new Color(1, 1, 1, 0.42f);
        onColor  = new Color(0, 1, 1, 0.5f);

        myDC = transform.root.GetComponent <DragController>();
        myEM = transform.root.GetComponent <EnergyManager>();
    }
 protected override void OnMouseUp(MouseEventArgs e)
 {
     base.OnMouseUp(e);
     Capture     = false;
     PressedItem = null;
     if (IsDragging)
     {
         Point          pp         = PointToView(new Point(e.X, e.Y));
         MouseEventArgs me         = new MouseEventArgs(e.Button, e.Clicks, pp.X, pp.Y, e.Delta);
         DragController controller = typeof(GridControl).GetProperty("DragController", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic).GetValue(View.GridControl, null) as DragController;
         controller.EndDrag(e);
     }
 }
Пример #15
0
    public void InitComp(/*Camera playFieldCamera,*/ GeneralPanelUI generalPanelUI, Transform puzzleMoveTrans, DragController dragController /* , CanvasScaler canvasScaler*/)
    {
        // this.playFieldCamera = playFieldCamera;
        this.generalPanelUI  = generalPanelUI;
        this.puzzleMoveTrans = puzzleMoveTrans;
        this.dragController  = dragController;
        // this.canvasScaler = canvasScaler;

        puzzleItemData           = new PuzzleItemData();
        screenSpaceRectTransform = GetComponent <RectTransform>();

        canRorate = true;
    }
Пример #16
0
 public CatalogProductPanel(Product product, DesignPanel dp, CatalogController cc)
 {
     InitializeComponent();
     this.product = product;
     this.cc      = cc;
     dc           = new DragController(product, dp);
     // Sets productvalues.
     nameLabel.Text        = product.name;
     priceLabel.Text       = "Prijs: €" + product.price.ToString();
     descriptionLabel.Text = product.description;
     widthLabel.Text       = product.width.ToString() + " cm";
     heightLabel.Text      = product.height.ToString() + " cm";
     pictureBox1.Image     = product.GetImage();
 }
        protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
        {
            Point          p  = new Point(e.X, e.Y);
            Point          pp = PointToView(p);
            MouseEventArgs me = new MouseEventArgs(e.Button, e.Clicks,
                                                   pp.X, pp.Y, e.Delta);

            if (IsDragging)
            {
                DragController controller = typeof(GridControl).GetProperty("DragController", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic).GetValue(View.GridControl, null) as DragController;

                if (me.Button != MouseButtons.Left)
                {
                    controller.CancelDrag();
                }
                else
                {
                    controller.DoDragging(me); //DoDragging(me);
                }
                return;
            }
            Size dragSize = System.Windows.Forms.SystemInformation.DragSize;

            if (PressedItem != null)
            {
                if ((e.Button & MouseButtons.Left) != 0)
                {
                    if (Math.Abs(p.X - downPoint.X) > dragSize.Width || Math.Abs(p.Y - downPoint.Y) > dragSize.Height)
                    {
                        if (ViewHandler != null)
                        {
                            (ViewHandler as GridHandler).DownPointHitInfo = View.CalcHitInfo(p);
                            (ViewHandler as GridHandler).DoStartDragObject(PressedItem, new Size(ClientSize.Width, 23));
                            if (IsDragging)
                            {
                                Capture = true;
                            }
                            else
                            {
                                PressedItem = null;
                            }
                            return;
                        }
                    }
                }
            }
            base.OnMouseMove(e);
        }
Пример #18
0
    void IEndDragHandler.OnEndDrag(PointerEventData eventData)
    {
        Vector3      destination = DragController.GetTouchWorldPosition(eventData.pointerId);
        RaycastHit2D hit2D;

        bool success = DragController.RaycastDetect(tagObject, destination, out hit2D);

        if (success)
        {
            PasteObject();
        }
        else
        {
            ReturnCandy();
        }
    }
        void HierarchyControl_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (sender is TextBlock)
            {
                var draggedItem = WPFHelper.FindParent <HierarchyControl>(sender as TextBlock);

                //create drag and drop item
                DragController.CreateDragDropWindow(draggedItem);

                //get rid of this hierarchy control manually
                HierarchyControl_Unloaded(null, null);

                DataObject dragData = new DataObject("control", draggedItem);
                DragDrop.DoDragDrop(draggedItem, dragData, DragDropEffects.All);

                DragController.DestroyDragDropWindow();

                e.Handled = true;
            }
            ;
        }
        protected virtual void StartDragging(AgDataGridRow row, Point point)
        {
            if (this.DataGrid == null)
            {
                return;
            }
            if (this.DragSurface == null)
            {
                return;
            }

            this.dragController = new DragControllerEx(
                DropContainer,
                new DragObject(row, DataGrid.GetDataRow(row.Handle), this.DataGrid),
                this.DragSurface,
                point,
                new Point(this.DataGrid.Margin.Left, this.DataGrid.Margin.Top));

            DragController.StartDragShift   = AgDataGrid.DefaultStartDragShift;
            DragController.ScrollOnDragging = null;
            this.DataGrid.CaptureMouse();
        }
Пример #21
0
    public void OnEndDrag(PointerEventData pointerEventData, PuzzleItemUI puzzleItemUI, GeneralPanelUI generalPanelUI)
    {
        if (gameOverFlag)
        {
            return;
        }
        if (puzzleItemUI.puzzleItemData.Plockstate)
        {
            return;
        }
        if (!puzzleItemUI.DraggedState)
        {
            return;
        }
        if (firstDragPointerID != pointerEventData.pointerId)//限制手指pointerId不同的不可被放置,可用于限制只能单指操作
        {
            return;
        }
        miniMapController.RefreshFlag = true;

        //拖动结束后,满足一定条件时拼图可以被插进面板,否则移除生成的拼图(隐藏显示)
        PuzzleItemData puzzleItemData = puzzleItemUI.puzzleItemData;

        Debug.Log("End Drag At:" + pointerEventData.position);
        puzzleItemUI.cloneForMove.SetActive(false);

        int gridIndex = -1;

        int[] blankLayout = null;
        int   interactRet = generalPanelUI.InteractWithPuzzle(puzzleItemUI.cloneForMove.GetComponent <PuzzleItemUI>(), out gridIndex, out blankLayout);

        puzzleItemData.PanelGridIndex = gridIndex;

        generalPanelUI.ShowPreCheckResult(2);

        //FINISH:进行操作记录,interactRet为0时,进行填充记录或位置移动记录;interactRet为3时,进行删除记录(操作历史记录的实现写于GeneralPanelUI中)

        if (interactRet == 0)//如果拼图在满足填充条件的位置
        {
            //把拼图插入
            generalPanelUI.InsertPuzzle(puzzleItemUI.gameObject);
        }
        else if (interactRet == 1 || interactRet == 2) //如果拼图在不满足填充条件以及不在删除区的其他位置
        {
            if (!puzzleItemData.NotSettleFlag)         //如果被开始拖的拼图已经放置了
            {
                puzzleItemData.PanelGridIndex = puzzleItemData.LastPanelGridIndex;
                generalPanelUI.InsertPuzzle(puzzleItemUI.gameObject, false);
            }

            Debug.Log("not fit " + interactRet);
        }
        else if (interactRet == 3)//如果拼图在删除区
        {
            //删除
            if (!puzzleItemData.NotSettleFlag)
            {
                Debug.Log("删除拼图");
                puzzleItemData.PanelGridIndex = puzzleItemData.LastPanelGridIndex;
                generalPanelUI.RemovePuzzle(puzzleItemUI.gameObject);
            }
            generalPanelUI.deleteParticleEffect.Play();
            DragController.VibrateFeedbackIntern();
        }

        //FINISH:deleteArea缩小为1
        generalPanelUI.OnDeleteAreaFlag = false;
        StartCoroutine(generalPanelUI.DeleteAreaLinearScaleDown());
        // generalPanelUI.deleteArea.transform.localScale = Vector3.one;

        puzzleItemUI.DraggedState = false;
        generalDragFlag           = false;

        //TODO:deleteArea置為透明
        generalPanelUI.SetDeleteAreaTransparent(true);
    }
 public void DropRedirectSeparator(object sender, DragEventArgs e)
 {
     DragController.Drop(sender, e, HierarchyDragController.DropType.SEPARATOR);
 }
 void Start()
 {
     gameManager     = GameObject.FindWithTag("GameManager");
     dragController  = GetComponent <DragController>();
     currentMaterial = GetComponentInChildren <MeshRenderer>().material;
 }
Пример #24
0
 public void StopSettleAnim()
 {
     GetComponent <Animator>().enabled = false;
     DragController.VibrateFeedbackIntern();
     generalPanelUI.CheckOver();
 }
Пример #25
0
 void IDragHandler.OnDrag(PointerEventData eventData)
 {
     DragController.FollowTouchOffset(transform, eventData.pointerId);
 }
Пример #26
0
 void Start()
 {
     dragController = GetComponent <DragController>();
     LoadPuzzle(0);
 }
Пример #27
0
 private void Awake()
 {
     DC = this;
 }