From efabc6ba991acfd01d38bb0bf4e8cfd772416617 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 05 一月 2026 13:07:39 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/tool.js | 72 ++++++++++++++++++++++++++++++++++--
1 files changed, 68 insertions(+), 4 deletions(-)
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 68068b5..32a05dc 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -29,6 +29,13 @@
import ctuLoadedNoBattery from '/map/agv/ctuLoadedNoBattery.svg';
import ctuLoadedHalfBattery from '/map/agv/ctuLoadedHalfBattery.svg';
import ctuLoadedFullBattery from '/map/agv/ctuLoadedFullBattery.svg';
+// asr
+import ASREmptyNoBattery from '/map/asr/ASREmptyNoBattery.svg';
+import ASREmptyHalfBattery from '/map/asr/ASREmptyHalfBattery.svg';
+import ASREmptyFullBattery from '/map/asr/ASREmptyFullBattery.svg';
+import ASRLoadedNoBattery from '/map/asr/ASRLoadedNoBattery.svg';
+import ASRLoadedHalfBattery from '/map/asr/ASRLoadedHalfBattery.svg';
+import ASRLoadedFullBattery from '/map/asr/ASRLoadedFullBattery.svg';
let app, mapContainer, themeMode;
let selectedSprite, effectOverlay, effectTicker;
@@ -114,6 +121,11 @@
sprite.width = 750;
sprite.height = 1300;
sprite.zIndex = DEVICE_Z_INDEX.AGV;
+
+ // // sprite.width = 750;
+ // // sprite.height = 1300;
+ // sprite.zIndex = DEVICE_Z_INDEX.AGV;
+ // sprite.scale.set(12, 10)
break
case DEVICE_TYPE.POINT:
sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 1 } }));
@@ -597,6 +609,12 @@
if (!mapContainer || !sprite) {
return;
}
+ const data = sprite.data || (sprite.data = {});
+
+ if (data.rotationTween) {
+ data.rotationTween.stop();
+ data.rotationTween = null;
+ }
// origin
let currentRotation = sprite.rotation + rotationOffset;
// target
@@ -612,7 +630,7 @@
// destination
const endRotation = sprite.rotation + rotationDifference;
- new TWEEDLE.Tween(sprite)
+ const rotationTween = new TWEEDLE.Tween(sprite)
.to({ rotation: endRotation }, ANIMATE_DURING_TIME)
.easing(TWEEDLE.Easing.Linear.None)
.onUpdate(() => {
@@ -622,6 +640,12 @@
}
})
.start();
+ data.rotationTween = rotationTween;
+ rotationTween.onComplete(() => {
+ if (data.rotationTween === rotationTween) {
+ data.rotationTween = null;
+ }
+ });
};
export const incrementSpriteNo = (str, incrementValue) => {
@@ -693,6 +717,25 @@
return;
}
}
+
+// export const generateAgvSpriteTexture = (agvStatusMode) => {
+// switch (agvStatusMode) {
+// case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
+// return ASREmptyNoBattery;
+// case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
+// return ASREmptyHalfBattery;
+// case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
+// return ASREmptyFullBattery;
+// case AGV_STATUS_MODE.LOADED_NO_BATTERY:
+// return ASRLoadedNoBattery;
+// case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
+// return ASRLoadedHalfBattery;
+// case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
+// return ASRLoadedFullBattery;
+// default:
+// return;
+// }
+// }
export function createAgvJobPanel(parentContainer, text) {
const panelScale = 4;
@@ -788,12 +831,14 @@
});
agvText.anchor.set(0.5, 0.5);
agvText.position.set(0, 8);
+ // agvText.position.set(0, 18);
agvText.scale.set(MAP_MIRROR ? -1 : 1, 1)
agvSprite.addChild(agvText);
agvSprite.updateTextRotation = () => {
if (agvText && agvSprite) {
agvText.rotation = -agvSprite.rotation - rotationParseNum(MAP_DEFAULT_ROTATION);
+ // agvText.rotation = -agvSprite.rotation - rotationParseNum(MAP_DEFAULT_ROTATION + 180);
}
};
agvSprite.updateTextRotation();
@@ -843,13 +888,24 @@
beInsight(agvSprite, setCurSprite);
- new TWEEDLE.Tween(agvSprite.position)
+ if (agvSprite.data.moveTween) {
+ agvSprite.data.moveTween.stop();
+ agvSprite.data.moveTween = null;
+ }
+
+ const moveTween = new TWEEDLE.Tween(agvSprite.position)
.to({
x: codeSprite.position.x,
y: codeSprite.position.y
}, ANIMATE_DURING_TIME)
.easing(TWEEDLE.Easing.Linear.None)
.start();
+ agvSprite.data.moveTween = moveTween;
+ moveTween.onComplete(() => {
+ if (agvSprite.data?.moveTween === moveTween) {
+ agvSprite.data.moveTween = null;
+ }
+ });
}
const drawerAgvPath = (curZone, agvVo) => {
@@ -900,6 +956,14 @@
for (let i = mapContainer.children.length - 1; i >= 0; i--) {
const child = mapContainer.children[i];
if (child?.data?.type === DEVICE_TYPE.AGV) {
+ if (child.data.moveTween) {
+ child.data.moveTween.stop();
+ child.data.moveTween = null;
+ }
+ if (child.data.rotationTween) {
+ child.data.rotationTween.stop();
+ child.data.rotationTween = null;
+ }
if (child.data.jobEffect) {
app?.ticker.remove(child.data.jobEffect._onTick);
child.removeChild(child.data.jobEffect);
@@ -943,7 +1007,7 @@
const label = new PIXI.Text(text ?? '', labelStyle);
label.anchor.set(0.5);
label.position.set(centerX, centerY);
- label.rotation = rotationParseNum(MAP_DEFAULT_ROTATION);
+ label.rotation = -rotationParseNum(MAP_DEFAULT_ROTATION);
label.scale.set(MAP_MIRROR ? -1 : 1, 1);
draft.addChild(label);
};
@@ -1203,4 +1267,4 @@
.easing(TWEEDLE.Easing.Quadratic.Out)
.to(targetPos, 500)
.start();
-};
\ No newline at end of file
+};
--
Gitblit v1.9.1