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(); }
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); } } }
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(); } } } }
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; } } }
// 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(); } }
// 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(); }