From 7a3a3921fbe7a1c7c6e192ccbc49abe4e45ab0f2 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 19 十月 2024 10:41:09 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/tool.js | 108 +++++-------------------------------------------------
1 files changed, 10 insertions(+), 98 deletions(-)
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 8f942a9..ca422a7 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -20,7 +20,7 @@
import ctuLoadedFullBattery from '/map/agv/ctuLoadedFullBattery.svg';
let app, mapContainer, themeMode;
-let selectedSprite, effectTick, effectHalfCircle, effectRectangle;
+let selectedSprite, effectCircle, effectTicker;
export function getApp() {
return app;
@@ -330,124 +330,37 @@
}
}
-
-// export const showSelectedEffect = (sprite) => {
-// if (!sprite?.texture || !sprite?.texture?.valid) {
-// return;
-// }
-// const { width, height } = sprite;
-// const scale = sprite.scale.x;
-// const sideLen = (Math.max(width, height) + 10) * scale;
-// const color = themeMode === 'light' ? 0x273c75 : 0xffffff;
-
-// effectHalfCircle = new PIXI.Graphics();
-// effectHalfCircle.beginFill(color);
-// effectHalfCircle.lineStyle(2 * scale, color);
-// effectHalfCircle.arc(0, 0, sideLen, 0, Math.PI);
-// effectHalfCircle.endFill();
-// effectHalfCircle.position.set(sprite.x, sprite.y);
-// effectHalfCircle.scale.set(1 / scale);
-// effectHalfCircle.zIndex = 9999;
-
-// effectRectangle = new PIXI.Graphics();
-// effectRectangle.lineStyle(5 * scale, color, 1);
-// effectRectangle.drawRoundedRect(0, 0, sideLen, sideLen, 16 * scale);
-// effectRectangle.endFill();
-// effectRectangle.mask = effectHalfCircle;
-// effectRectangle.zIndex = 9999;
-
-// const scaledWidth = sideLen * (1 / scale);
-// const scaledHeight = sideLen * (1 / scale);
-
-// effectRectangle.scale.set(1 / scale);
-// effectRectangle.position.set(sprite.x - scaledWidth / 2, sprite.y - scaledHeight / 2);
-
-// mapContainer.addChild(effectRectangle);
-// mapContainer.addChild(effectHalfCircle);
-
-// selectedSprite = sprite;
-
-// let phase = 0;
-// effectTick = (delta) => {
-// phase += delta / 10;
-// phase %= (Math.PI * 2);
-// if (effectHalfCircle) {
-// effectHalfCircle.rotation = phase;
-// }
-// };
-
-// app.ticker.add(effectTick);
-// }
-
-// export const removeSelectedEffect = () => {
-// if (effectTick) {
-// app.ticker.remove(effectTick);
-// }
-// if (effectHalfCircle) {
-// mapContainer.removeChild(effectHalfCircle);
-// effectHalfCircle = null;
-// }
-// if (effectRectangle) {
-// mapContainer.removeChild(effectRectangle);
-// effectRectangle = null;
-// }
-// selectedSprite = null;
-// }
-
-// export const updateEffect = (sprite) => {
-// if (!sprite || sprite !== selectedSprite || !effectRectangle || !effectHalfCircle) {
-// return
-// }
-// const { width, height } = sprite;
-// const scale = sprite?.scale.x;
-// const sideLen = (Math.max(width, height) + 10) * scale;
-// const scaledWidth = sideLen * (1 / scale);
-// const scaledHeight = sideLen * (1 / scale);
-
-// effectRectangle.position.set(sprite.x - scaledWidth / 2, sprite.y - scaledHeight / 2);
-
-// effectHalfCircle.position.set(sprite.x, sprite.y);
-// }
-
-let effectCircle = null;
-let effectTicker = null;
-
export const showSelectedEffect = (sprite) => {
if (!sprite?.texture || !sprite?.texture?.valid) {
return;
}
- // 濡傛灉宸茬粡鏈夌壒鏁堬紝鍏堢Щ闄�
- removeSelectedEffect();
-
const { width, height } = sprite;
- const scale = sprite.scale.x;
const maxDimension = Math.max(width, height);
- const radius = (maxDimension / 2) * scale * 1.2; // 鏀惧ぇ1.2鍊嶏紝浣垮渾绋嶅ぇ浜巗prite
+ const radius = (maxDimension / 2) + maxDimension / 5;
- const color = themeMode === 'light' ? 0x273c75 : 0xffffff;
+ const color = themeMode === 'light' ? 0x2f68ac : 0xffffff;
+ const alpha = .5;
- // 鍒涘缓鍦嗗舰鐗规晥
effectCircle = new PIXI.Graphics();
- effectCircle.lineStyle(2 * scale, color, 1);
+ effectCircle.beginFill(color, alpha);
effectCircle.drawCircle(0, 0, radius);
effectCircle.endFill();
effectCircle.position.set(sprite.x, sprite.y);
- effectCircle.zIndex = sprite.zIndex - 1; // 纭繚涓嶉伄鎸prite
+ effectCircle.zIndex = -1;
+ effectCircle.blendMode = PIXI.BLEND_MODES.NORMAL;
- // 灏嗙壒鏁堟坊鍔犲埌瀹瑰櫒涓�
mapContainer.addChild(effectCircle);
selectedSprite = sprite;
- // 瀹炵幇鑴夊啿鏁堟灉
let pulseScale = 1;
let scalingUp = true;
effectTicker = (delta) => {
- const pulseSpeed = 0.005 * delta;
+ const pulseSpeed = 0.003 * delta;
if (scalingUp) {
pulseScale += pulseSpeed;
- if (pulseScale >= 1.2) {
+ if (pulseScale >= 1.1) {
scalingUp = false;
}
} else {
@@ -457,8 +370,7 @@
}
}
effectCircle.scale.set(pulseScale);
- // 濮嬬粓璺熼殢sprite鐨勪綅缃�
- effectCircle.position.set(selectedSprite.x, selectedSprite.y);
+ effectCircle.position.set(sprite.x, sprite.y);
};
app.ticker.add(effectTicker);
--
Gitblit v1.9.1