| | |
| | | }, 200).start(); |
| | | } |
| | | |
| | | rotateMap = () => { |
| | | rotateMap = (value = 0) => { |
| | | const bounds = this.mapContainer.getLocalBounds(); |
| | | const centerX = bounds.x + bounds.width / 2; |
| | | const centerY = bounds.y + bounds.height / 2; |
| | | this.mapContainer.pivot.set(centerX, centerY); |
| | | this.mapContainer.position.set(this.app.renderer.width / 2, this.app.renderer.height / 2); |
| | | |
| | | const rotationIncrement = Math.PI / 2; // 90 degrees in radians |
| | | const newRotation = this.mapContainer.rotation + rotationIncrement; |
| | | const newRotation = this.mapContainer.rotation + value; |
| | | |
| | | const rotationDegrees = (newRotation * 180 / Math.PI) % 360; |
| | | this.rotationText.text = `{ rotation: ${rotationDegrees.toFixed(1)}° }`; |
| | | |
| | | new TWEEDLE.Tween(this.mapContainer) |
| | | .to({ rotation: newRotation }, 200) |
| | | .easing(TWEEDLE.Easing.Quadratic.Out) |
| | | .onComplete(() => { |
| | | localStorage.setItem('mapRotation', newRotation % (Math.PI * 2)); |
| | | }) |
| | | .start(); |
| | | } |
| | | |
| | |
| | | this.coordinatesText.name = 'xyStr'; |
| | | this.coordinatesText.position.set(10, 10); |
| | | this.app.stage.addChild(this.coordinatesText); |
| | | |
| | | this.rotationText = new PIXI.Text('Rotation: 0°', { |
| | | fill: this.themeMode === 'dark' ? 0xdddddd : 0x333333, |
| | | fontSize: 13, |
| | | fontFamily: 'Microsoft YaHei', |
| | | fontWeight: 'bold', |
| | | }); |
| | | this.rotationText.name = 'rotationStr'; |
| | | this.rotationText.position.set(10, 35); |
| | | this.app.stage.addChild(this.rotationText); |
| | | |
| | | this.app.stage.on('pointermove', (event) => { |
| | | const worldPos = event.data.getLocalPosition(this.mapContainer); |
| | |
| | | if (this.coordinatesText) { |
| | | this.coordinatesText.style.fill = themeMode === 'dark' ? 0xdddddd : 0x333333; |
| | | } |
| | | if (this.rotationText) { |
| | | this.rotationText.style.fill = themeMode === 'dark' ? 0xdddddd : 0x333333; |
| | | } |
| | | } |
| | | |
| | | } |