コード例 #1
0
 public void EventTranslateMain(TranslateData data)
 {
     selectedPiece.x = data.x;
     selectedPiece.y = data.y;
     selectedPiece.mainPiece.rect.Location = new Point(data.left, data.top);
     mainPic.Invalidate();
 }
コード例 #2
0
        private void timer_Tick(object sender, EventArgs e)
        {
            if (isDragging)
            {
                var data = new TranslateData(selectedPiece.mainPiece.rect.Left,
                                             selectedPiece.mainPiece.rect.Top, selectedPiece.x, selectedPiece.y);
                Send(new SendObject(SendObject.TRANSLATE_MAIN, data));
            }
            else
            if (frmRemote.isDragging)
            {
                var data = new TranslateData(frmRemote.selectedPiece.remotePiece.rect.Left,
                                             frmRemote.selectedPiece.remotePiece.rect.Top);
                Send(new SendObject(SendObject.TRANSLATE_REMOTE, data));
            }

            if (sendObjects.Count > 0)
            {
                SendObject obj = sendObjects.Dequeue();
                if (isServer)
                {
                    server.Send(obj);
                }
                else
                {
                    client.Send(obj);
                }
            }
        }
コード例 #3
0
        private void mainPic_MouseUp(object sender, MouseEventArgs e)
        {
            if (!isLocked)
            {
                if (e.Button == MouseButtons.Left && isDragging)
                {
                    isDragging = false;

                    // nhả chuột ra thì phải check xem mảnh đấy đúng vị trí chưa

                    if (selectedPiece != null)
                    {
                        // tự khớp ảnh và check biên
                        fit();
                        clamp();

                        mainPic.Invalidate();

                        // gửi sự kiện mở khóa, vị trí mảnh bị thay đổi
                        var data = new TranslateData(selectedPiece.mainPiece.rect.Left,
                                                     selectedPiece.mainPiece.rect.Top, selectedPiece.x, selectedPiece.y);
                        Send(new SendObject(SendObject.UNLOCK_MAIN, data));

                        checkPiece();
                    }
                }
            }
        }
コード例 #4
0
 private void remotePic_MouseUp(object sender, MouseEventArgs e)
 {
     if (!parent.isLocked)
     {
         if (e.Button == MouseButtons.Left && isDragging)
         {
             // gửi sự kiện mở khóa
             if (selectedPiece != null)
             {
                 var data = new TranslateData(selectedPiece.remotePiece.rect.Left,
                                              selectedPiece.remotePiece.rect.Top);
                 parent.Send(new SendObject(SendObject.UNLOCK_REMOTE, data));
             }
             isDragging = false;
         }
     }
 }
コード例 #5
0
        // dịch ảnh theo từng ô, công thêm một lượng bằng kích thước 1 ô WP và HP
        private void translate(int x, int y)
        {
            if (!parent.isLocked)
            {
                parent.selectedPiece.x += x;
                parent.selectedPiece.y += y;

                int left = parent.selectedPiece.mainPiece.rect.Left, top = parent.selectedPiece.mainPiece.rect.Top;
                left += x * parent.WP;
                top  += y * parent.HP;

                parent.selectedPiece.mainPiece.rect.Location = new Point(left, top);

                parent.clamp();

                var data = new TranslateData(parent.selectedPiece.mainPiece.rect.Left,
                                             parent.selectedPiece.mainPiece.rect.Top, parent.selectedPiece.x, parent.selectedPiece.y);
                parent.Send(new SendObject(SendObject.TRANSLATE_MAIN, data));

                parent.checkPiece();

                parent.mainPic.Invalidate();
            }
        }
コード例 #6
0
 // tương tự, khi có mảnh nào đó dịch chuyển thì top, left sẽ thay đổi
 // form này chỉ cần cập nhật top, left của mảnh đang chọn, dù gì thì mảnh
 // đang chọn ở 2 máy luôn giống nhau
 public void EventTranslateRemote(TranslateData data)
 {
     frmRemote.selectedPiece.remotePiece.rect.Location = new Point(data.left, data.top);
     frmRemote.remotePic.Invalidate();
 }