#
luxiaotao1123
2024-10-09 475fceb864b4c5d7fb9f47720b0918ba7c96e08a
#
3个文件已修改
112 ■■■■■ 已修改文件
zy-acs-flow/src/map/MapPage.jsx 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/player.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/tool.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/MapPage.jsx
@@ -76,10 +76,13 @@
        switch (mode) {
            case MapMode.OBSERVER_MODE:
                setDeviceVisible(false);
                player.hideGridLines();
                break
            case MapMode.MOVABLE_MODE:
                player.showGridLines();
                break
            case MapMode.SETTINGS_MODE:
                player.hideGridLines();
                setDeviceVisible(false);
                break
            default:
@@ -101,9 +104,9 @@
        sprite.x = mapX;
        sprite.y = mapY;
        // Utils.initSprite(sprite, type);
        // mapContainer.addChild(sprite);
        // Utils.beMovable(sprite);
        Tool.initSprite(sprite, type);
        mapContainer.addChild(sprite);
        Tool.beMovable(sprite);
    };
    const actions = [
zy-acs-flow/src/map/player.js
@@ -11,7 +11,7 @@
        globalThis.__PIXI_APP__ = this.app;
        this.mapContainer = generateMapContainer('mapContainer');
        this.mapContainer = generatePixiContainer('mapContainer');
        const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png');
        bunny.anchor.set(0.5);
@@ -21,7 +21,55 @@
        this.app.ticker.add((delta) => {
            bunny.rotation += 0.1 * delta;
        });
        // startupTicker();
    }
    showGridLines = () => {
        this.hideGridLines();
        if (!this.gridLineContainer) {
            this.gridLineContainer = generatePixiContainer('gridLineContainer');
            this.app.stage.addChild(this.gridLineContainer);
        }
        const spacing = 30;
        const lineDefaultAlpha = .1;;
        const lineDefaultColor = 0x000000;
        for (let i = 0; i < this.app.view.width / spacing; i++) {
            const graphics = new PIXI.Graphics();
            graphics.lineStyle(1, lineDefaultColor, lineDefaultAlpha);
            graphics.beginFill(lineDefaultColor);
            graphics.moveTo(i * spacing, 0);
            graphics.lineTo(i * spacing, this.app.view.height);
            graphics.endFill();
            this.gridLineContainer.addChild(graphics);
        }
        for (let i = 0; i < this.app.view.height / spacing; i++) {
            const graphics = new PIXI.Graphics();
            graphics.lineStyle(1, lineDefaultColor, lineDefaultAlpha);
            graphics.beginFill(lineDefaultColor);
            graphics.moveTo(0, i * spacing);
            graphics.lineTo(this.app.view.width, i * spacing);
            graphics.endFill();
            this.gridLineContainer.addChild(graphics);
        }
    }
    hideGridLines = () => {
        if (this.gridLineContainer) {
            this.app.stage.removeChild(this.gridLineContainer);
            this.gridLineContainer = null;
        }
    }
    // startupTicker = () => {
    //     this.app.ticker.add((delta) => {
    //         TWEEDLE.Group.shared.update();
    //     });
    // }
    resize(width, height) {
        this.app.renderer.resize(width, height);
@@ -57,7 +105,7 @@
    return app;
}
const generateMapContainer = (name) => {
const generatePixiContainer = (name) => {
    const mapContainer = new PIXI.Container();
    mapContainer.sortableChildren = true;
    mapContainer.name = name;
zy-acs-flow/src/map/tool.js
@@ -62,6 +62,57 @@
    return sprite;
}
export const initSprite = (sprite, type) => {
    sprite.anchor.set(0.5);
    sprite.cursor = 'pointer';
    sprite.eventMode = 'static';
    sprite.data = {
        type: type,
        uuid: generateID()
    };
}
export const beMovable = (sprite) => {
    sprite.off('pointerup');
    sprite.off('pointermove');
    sprite.off('pointerdown');
    sprite.off('click');
    sprite.on("pointerdown", onDragStart);
    let dragTarget;
    function onDragStart(event) {
        if (event.button === 0) {
            dragTarget = event.currentTarget;
            mapContainer.parent.off('pointermove');
            mapContainer.parent.on('pointermove', onDragMove, dragTarget);
            mapContainer.parent.off('pointerup');
            mapContainer.parent.on('pointerup', onDragEnd.bind(mapContainer));
        }
    }
    function onDragMove(event) {
        if (this) {
            this.parent.toLocal(event.global, null, this.position);
        }
    }
    function onDragEnd() {
        if (dragTarget) {
            this.parent.off('pointermove');
            this.parent.off('pointerup');
            dragTarget.alpha = 1;
            dragTarget = null;
        }
    }
}
export const generateID = () => {
    return Date.now().toString(36) + Math.random().toString(36).substring(2);
}
export const patchRaLayout = (param) => {
    const parentElement = document.getElementById('main-content');
    if (parentElement && parentElement.classList.contains('RaLayout-content')) {