| | |
| | | .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, |