From b47a64af89a4ae23934e0b8d271676cbdd326cfa Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 06 三月 2024 09:44:49 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/player.js | 83 ++++++++++++++-------------
zy-asrs-flow/src/pages/map/utils.js | 55 ++++++++++++++++++
2 files changed, 97 insertions(+), 41 deletions(-)
diff --git a/zy-asrs-flow/src/pages/map/player.js b/zy-asrs-flow/src/pages/map/player.js
index 9cc9159..09e1f72 100644
--- a/zy-asrs-flow/src/pages/map/player.js
+++ b/zy-asrs-flow/src/pages/map/player.js
@@ -107,54 +107,55 @@
// batch move
- if (this.selectedSprites && this.selectedSprites.length > 0) {
- let batchMove = false;
- let batchMoveStartPos = null;
+ Utils.spriteListBeMovable(this.selectedSprites, this.scale, this.activateMapEvent);
+ // if (this.selectedSprites && this.selectedSprites.length > 0) {
+ // let batchMove = false;
+ // let batchMoveStartPos = null;
- const batchMoving = (event) => {
- if (batchMove) {
- // offset move val
- var mouseMovement = {
- x: (event.global.x - batchMoveStartPos.x) / this.scale,
- y: (event.global.y - batchMoveStartPos.y) / this.scale
- };
- for (let sprite of this.selectedSprites) {
- sprite.position.x = sprite.data.batchMoveStartPos.x + mouseMovement.x;
- sprite.position.y = sprite.data.batchMoveStartPos.y + mouseMovement.y;
- }
- }
- }
+ // const batchMoving = (event) => {
+ // if (batchMove) {
+ // // offset move val
+ // var mouseMovement = {
+ // x: (event.global.x - batchMoveStartPos.x) / this.scale,
+ // y: (event.global.y - batchMoveStartPos.y) / this.scale
+ // };
+ // for (let sprite of this.selectedSprites) {
+ // sprite.position.x = sprite.data.batchMoveStartPos.x + mouseMovement.x;
+ // sprite.position.y = sprite.data.batchMoveStartPos.y + mouseMovement.y;
+ // }
+ // }
+ // }
- const batchMoveEnd = (event) => {
- batchMove = false;
- batchMoveStartPos = null;
- this.selectedSprites.forEach(child => {
- Utils.unMarkSprite(child);
- })
- this.selectedSprites = [];
- this.mapContainer.parent.off('mousedown');
- this.mapContainer.parent.off('mousemove');
+ // const batchMoveEnd = (event) => {
+ // batchMove = false;
+ // batchMoveStartPos = null;
+ // this.selectedSprites.forEach(child => {
+ // Utils.unMarkSprite(child);
+ // })
+ // this.selectedSprites = [];
+ // this.mapContainer.parent.off('mousedown');
+ // this.mapContainer.parent.off('mousemove');
- this.activateMapEvent(Utils.MapEvent.SELECTION_BOX);
- }
+ // this.activateMapEvent(Utils.MapEvent.SELECTION_BOX);
+ // }
- const batchMoveStart = (event) => {
- batchMoveStartPos = { x: event.data.global.clone().x, y: event.data.global.clone().y };
- this.selectedSprites.forEach(child => {
- child.data.batchMoveStartPos = { x: child.position.x, y: child.position.y };
- })
+ // const batchMoveStart = (event) => {
+ // batchMoveStartPos = { x: event.data.global.clone().x, y: event.data.global.clone().y };
+ // this.selectedSprites.forEach(child => {
+ // child.data.batchMoveStartPos = { x: child.position.x, y: child.position.y };
+ // })
- batchMove = true;
- this.mapContainer.parent.off('mousemove');
- this.mapContainer.parent.on('mousemove', batchMoving);
+ // batchMove = true;
+ // this.mapContainer.parent.off('mousemove');
+ // this.mapContainer.parent.on('mousemove', batchMoving);
- this.mapContainer.parent.off('mouseup');
- this.mapContainer.parent.on('mouseup', batchMoveEnd);
- }
+ // this.mapContainer.parent.off('mouseup');
+ // this.mapContainer.parent.on('mouseup', batchMoveEnd);
+ // }
- this.mapContainer.parent.off('mousedown')
- this.mapContainer.parent.on('mousedown', batchMoveStart);
- }
+ // this.mapContainer.parent.off('mousedown')
+ // this.mapContainer.parent.on('mousedown', batchMoveStart);
+ // }
diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js
index bef2076..a72b30d 100644
--- a/zy-asrs-flow/src/pages/map/utils.js
+++ b/zy-asrs-flow/src/pages/map/utils.js
@@ -31,6 +31,7 @@
sprite.data = {};
}
+// sprite be movable from sprite click event
export const beMovable = (sprite, setDidClickSprite) => {
sprite.off('pointerup');
sprite.off('pointerdown');
@@ -66,6 +67,60 @@
}
+// sprites be movable from select box
+// the scale was dynamic
+export const spriteListBeMovable = (selectedSprites, scale, activateMapEvent) => {
+ if (selectedSprites && selectedSprites.length > 0) {
+ let batchMove = false;
+ let batchMoveStartPos = null;
+
+ const batchMoving = (event) => {
+ if (batchMove && batchMoveStartPos) {
+ // offset move val
+ var mouseMovement = {
+ x: (event.global.x - batchMoveStartPos.x) / scale,
+ y: (event.global.y - batchMoveStartPos.y) / scale
+ };
+ for (let sprite of selectedSprites) {
+ sprite.position.x = sprite.data.batchMoveStartPos.x + mouseMovement.x;
+ sprite.position.y = sprite.data.batchMoveStartPos.y + mouseMovement.y;
+ }
+ }
+ }
+
+ const batchMoveEnd = (event) => {
+ batchMove = false;
+ batchMoveStartPos = null;
+ selectedSprites.forEach(child => {
+ unMarkSprite(child);
+ })
+ selectedSprites = [];
+ mapContainer.parent.off('mousedown');
+ mapContainer.parent.off('mousemove');
+ mapContainer.parent.off('mouseup');
+
+ activateMapEvent(MapEvent.SELECTION_BOX);
+ }
+
+ const batchMoveStart = (event) => {
+ batchMoveStartPos = { x: event.data.global.clone().x, y: event.data.global.clone().y };
+ selectedSprites.forEach(child => {
+ child.data.batchMoveStartPos = { x: child.position.x, y: child.position.y };
+ })
+
+ batchMove = true;
+ mapContainer.parent.off('mousemove');
+ mapContainer.parent.on('mousemove', batchMoving);
+
+ mapContainer.parent.off('mouseup');
+ mapContainer.parent.on('mouseup', batchMoveEnd);
+ }
+
+ mapContainer.parent.off('mousedown')
+ mapContainer.parent.on('mousedown', batchMoveStart);
+ }
+}
+
export const isSpriteInSelectionBox = (sprite, selectionBox) => {
const spriteBounds = sprite.getBounds();
const boxBounds = selectionBox.getBounds();
--
Gitblit v1.9.1