| | |
| | | mapContainer = param; |
| | | } |
| | | |
| | | export function getMapContainer() { |
| | | return mapContainer; |
| | | } |
| | | |
| | | export const MapEvent = Object.freeze({ |
| | | SELECTION_BOX: Symbol.for(0), |
| | | }) |
| | |
| | | |
| | | export const showSelectedEffect = (sprite) => { |
| | | const { width, height } = sprite; |
| | | const scale = mapContainer.scale.x; |
| | | const scale = sprite.scale.x; |
| | | const sideLen = (Math.max(width, height) + 10) * scale; |
| | | const color = 0x273c75; |
| | | |
| | | effectHalfCircle = new PIXI.Graphics(); |
| | | effectHalfCircle.beginFill(color); |
| | | effectHalfCircle.lineStyle(2, 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); |
| | | |
| | | effectRectangle = new PIXI.Graphics(); |
| | | effectRectangle.lineStyle(2, color, 1); |
| | | effectRectangle.drawRoundedRect(0, 0, sideLen, sideLen, 16); |
| | | effectRectangle.lineStyle(2 * scale, color, 1); |
| | | effectRectangle.drawRoundedRect(0, 0, sideLen, sideLen, 16 * scale); |
| | | effectRectangle.endFill(); |
| | | effectRectangle.mask = effectHalfCircle; |
| | | |
| | |
| | | effectTick = (delta) => { |
| | | phase += delta / 10; |
| | | phase %= (Math.PI * 2); |
| | | effectHalfCircle.rotation = phase; |
| | | if (effectHalfCircle) { |
| | | effectHalfCircle.rotation = phase; |
| | | } |
| | | }; |
| | | |
| | | app.ticker.add(effectTick); |
| | |
| | | } |
| | | } |
| | | |
| | | export const copySprite = (sprite) => { |
| | | const copiedSprite = new PIXI.Sprite(sprite.texture); |
| | | initSprite(copiedSprite); |
| | | copiedSprite.position.set(sprite.position.x, sprite.position.y); |
| | | copiedSprite.scale.set(sprite.scale.x, sprite.scale.y); |
| | | copiedSprite.rotation = sprite.rotation; |
| | | return copiedSprite; |
| | | } |
| | | |
| | | export const markSprite = (sprite) => { |
| | | sprite.alpha = 0.5; |
| | | } |