| | |
| | | }); |
| | | const [app, setApp] = React.useState(null); |
| | | const [mapContainer, setMapContainer] = React.useState(null); |
| | | const [didClickSprite, setDidClickSprite] = React.useState(false); |
| | | const [spriteBySettings, setSpriteBySettings] = React.useState(null); |
| | | const prevSpriteBySettingsRef = React.useRef(); |
| | | const [drawerVisible, setDrawerVisible] = React.useState(false); |
| | |
| | | // init func |
| | | React.useEffect(() => { |
| | | const initialize = async () => { |
| | | player = new Player(mapRef.current, styles.dark, didClickSprite); |
| | | player = new Player(mapRef.current, styles.dark); |
| | | setApp(player.app); |
| | | setMapContainer(player.mapContainer); |
| | | Utils.syncApp(player.app); |
| | |
| | | }); |
| | | |
| | | mapContainer.children.forEach(child => { |
| | | Utils.beMovable(child, setDidClickSprite); |
| | | Utils.beMovable(child); |
| | | }) |
| | | break |
| | | case MapModel.SETTINGS_MODEL: |
| | |
| | | |
| | | Utils.initSprite(sprite, type); |
| | | mapContainer.addChild(sprite); |
| | | Utils.beMovable(sprite, setDidClickSprite); |
| | | Utils.beMovable(sprite); |
| | | }; |
| | | |
| | | // watch curSprite |
| | |
| | | } |
| | | switchFloor(curFloor); |
| | | }, [curFloor]); |
| | | |
| | | // didClickSprite, stop triggers both sprite click and play's selection boxs |
| | | React.useEffect(() => { |
| | | player.updateDidClickSprite(didClickSprite); |
| | | }, [didClickSprite]) |
| | | |
| | | // watch spriteBySettings |
| | | React.useEffect(() => { |
| | |
| | | setSpriteBySettings(null); |
| | | }} |
| | | setSpriteBySettings={setSpriteBySettings} |
| | | setDidClickSprite={setDidClickSprite} |
| | | refCurr={mapRef.current} |
| | | /> |
| | | </> |