|  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | let app = null; | 
 |  |  | let mapContainer = null; | 
 |  |  |  | 
 |  |  | 
 |  |  |     sprite.anchor.set(0.5); | 
 |  |  |     sprite.cursor = 'pointer'; | 
 |  |  |     sprite.eventMode = 'static'; | 
 |  |  |     sprite.data = {}; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // sprite be movable from sprite click event | 
 |  |  | export const beMovable = (sprite, setDidClickSprite) => { | 
 |  |  |     sprite.off('pointerup'); | 
 |  |  |     sprite.off('pointermove'); | 
 |  |  |     sprite.off('pointerdown'); | 
 |  |  |     sprite.off('click'); | 
 |  |  |  | 
 |  |  | 
 |  |  |         if (dragTarget) { | 
 |  |  |             setDidClickSprite(false); | 
 |  |  |             this.parent.off('pointermove'); | 
 |  |  |             this.parent.off('pointerup'); | 
 |  |  |             dragTarget.alpha = 1; | 
 |  |  |             dragTarget = null; | 
 |  |  |         } | 
 |  |  | 
 |  |  |  | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // sprite be beSettings from sprite click event | 
 |  |  | export const beSettings = (sprite, setCurrSpriteBySettings, setDidClickSprite) => { | 
 |  |  |     sprite.off('pointerup'); | 
 |  |  |     sprite.off('pointermove'); | 
 |  |  |     sprite.off('pointerdown'); | 
 |  |  |     sprite.off('click'); | 
 |  |  |      | 
 |  |  |     sprite.on("click", onClick); | 
 |  |  |  | 
 |  |  |     function onClick(event) { | 
 |  |  |         setCurrSpriteBySettings(sprite); | 
 |  |  |         // setDidClickSprite(true); | 
 |  |  |     } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // sprites be movable from select box | 
 |  |  | // the scale was dynamic | 
 |  |  | export const spriteListBeMovable = (selectedSprites, scale, resetFn) => { | 
 |  |  |     if (selectedSprites && selectedSprites.length > 0) { | 
 |  |  |         let batchMove = false; | 
 |  |  |         let batchMoveStartPos = null; | 
 |  |  |  | 
 |  |  |         const batchMoving = (event) => { | 
 |  |  |             if (batchMove && batchMoveStartPos) { | 
 |  |  |                 // offset move val | 
 |  |  |                 var mouseMovement = { | 
 |  |  |                     x: (event.global.x - batchMoveStartPos.x) / scale, | 
 |  |  |                     y: (event.global.y - batchMoveStartPos.y) / scale | 
 |  |  |                 }; | 
 |  |  |                 for (let sprite of selectedSprites) { | 
 |  |  |                     sprite.position.x = sprite.data.batchMoveStartPos.x + mouseMovement.x; | 
 |  |  |                     sprite.position.y = sprite.data.batchMoveStartPos.y + mouseMovement.y; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         const batchMoveEnd = (event) => { | 
 |  |  |             batchMove = false; | 
 |  |  |             batchMoveStartPos = null; | 
 |  |  |             selectedSprites.forEach(child => { | 
 |  |  |                 unMarkSprite(child); | 
 |  |  |             }) | 
 |  |  |             selectedSprites = []; | 
 |  |  |             mapContainer.parent.off('mousedown'); | 
 |  |  |             mapContainer.parent.off('mousemove'); | 
 |  |  |             mapContainer.parent.off('mouseup'); | 
 |  |  |  | 
 |  |  |             resetFn(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         const batchMoveStart = (event) => { | 
 |  |  |             batchMoveStartPos = { x: event.data.global.clone().x, y: event.data.global.clone().y }; | 
 |  |  |             selectedSprites.forEach(child => { | 
 |  |  |                 child.data.batchMoveStartPos = { x: child.position.x, y: child.position.y }; | 
 |  |  |             }) | 
 |  |  |  | 
 |  |  |             batchMove = true; | 
 |  |  |             mapContainer.parent.off('mousemove'); | 
 |  |  |             mapContainer.parent.on('mousemove', batchMoving); | 
 |  |  |  | 
 |  |  |             mapContainer.parent.off('mouseup'); | 
 |  |  |             mapContainer.parent.on('mouseup', batchMoveEnd); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         mapContainer.parent.off('mousedown') | 
 |  |  |         mapContainer.parent.on('mousedown', batchMoveStart); | 
 |  |  |     } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export const isSpriteInSelectionBox = (sprite, selectionBox) => { | 
 |  |  |     const spriteBounds = sprite.getBounds(); | 
 |  |  |     const boxBounds = selectionBox.getBounds(); |