From c396e4cf45e7601e5facf971ca85e5e491b779c5 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 18 三月 2025 14:11:28 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/player.js |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/zy-acs-flow/src/map/player.js b/zy-acs-flow/src/map/player.js
index 8aff09e..7e933e4 100644
--- a/zy-acs-flow/src/map/player.js
+++ b/zy-acs-flow/src/map/player.js
@@ -1,7 +1,8 @@
 import * as PIXI from 'pixi.js';
 import * as TWEEDLE from 'tweedle.js';
 import * as Tool from './tool';
-import star from '/img/map/star.png'
+import star from '/img/map/star.png';
+import { DEVICE_TYPE } from './constants';
 
 export default class Player {
 
@@ -152,7 +153,15 @@
             this.mapContainer.scale.set(this.scale);
 
             this.mapContainer.children.forEach(child => {
-                // child.scale.set(1 / this.scale); // 闃叉鍥炬爣鍙樺皬
+                // child.scale.set(1 / (this.scale * 1)); // 闃叉鍥炬爣鍙樺皬
+
+                // switch (child.data?.type) {
+                //     case DEVICE_TYPE.POINT:
+                //         child.scale.set(1 / (this.scale * 20));
+                //         break
+                //     default:
+                //         break
+                // }
             });
         });
     }
@@ -249,6 +258,31 @@
             .start();
     }
 
+    flipMapHorizontally = () => {
+        // 1. 纭畾 mapContainer 鐨勪腑蹇冪偣
+        const bounds = this.mapContainer.getLocalBounds();
+        const centerX = bounds.x + bounds.width / 2;
+        const centerY = bounds.y + bounds.height / 2;
+
+        // 2. 灏� mapContainer 浠ヤ腑蹇冪偣杩涜鏃嬭浆/缈昏浆
+        this.mapContainer.pivot.set(centerX, centerY);
+        this.mapContainer.position.set(this.app.renderer.width / 2, this.app.renderer.height / 2);
+
+        // 褰撳墠鐨勬按骞崇缉鏀惧��
+        const currentScaleX = this.mapContainer.scale.x;
+        const targetScaleX = -currentScaleX; // 缈昏浆鏃讹紝璁� x 杞寸缉鏀惧彇鐩稿弽鍊�
+
+        // 3. 鐢� TWEEDLE 鍋氬姩鐢荤炕杞紝濡傛灉鍙兂绔嬪嵆缈昏浆锛屼篃鍙互鐩存帴璧嬪��
+        new TWEEDLE.Tween(this.mapContainer.scale)
+            .to({ x: targetScaleX }, 300) // 300 姣鍔ㄧ敾
+            .easing(TWEEDLE.Easing.Quadratic.Out)
+            .onComplete(() => {
+                // 灏嗘渶缁� x 杞寸缉鏀惧瓨鍌ㄥ埌 localStorage
+                localStorage.setItem('mapScaleX', this.mapContainer.scale.x);
+            })
+            .start();
+    };
+
     showCoordinates = () => {
         this.coordinatesText = new PIXI.Text('{ X: 0, Y: 0 }', {
             fill: this.themeMode === 'dark' ? 0xdddddd : 0x333333,

--
Gitblit v1.9.1