javascript - 画一条线,好像我想画房子平面图

标签 javascript pixi.js

我是 PIXI.js 的新手,我尝试以特定方式构建一条线:

当我单击鼠标并按下左键单击时,我想从我单击的位置到我释放左键单击的区域画一条线。

我取得的最好成绩几乎是我想要的,但我想去掉所有出现的“中间”线。

这是我做的(不要看质量:p):

let app = new PIXI.Application(window.innerWidth, window.innerHeight);

app.stage.interactive = true;

const background = new PIXI.Graphics();
background.beginFill(0xFFFFFF);
background.lineStyle(1, 0xFFFFFF);
background.drawRect(0, 0, window.innerWidth, window.innerHeight);
background.interactive = true;
app.stage.addChild(background);

let lines = [];

let initialMoveTo;

background.on("mousedown", (event) => {
    background.isCreatingLine = true;

    let mouseX = event.data.global.x;
    let mouseY = event.data.global.y;

    initialMoveTo = [mouseX, mouseY];

    let line = new PIXI.Graphics();
    line.lineStyle(1, 0x000000);
    line.moveTo(mouseX, mouseY);

    lines = [line].concat(lines);

    app.stage.addChild(line);
});

background.on("mousemove", (event) => {
    if (background.isCreatingLine) {
        let mouseX = event.data.global.x;
        let mouseY = event.data.global.y;

        lines[0].moveTo(initialMoveTo[0], initialMoveTo[1]);
        lines[0].lineTo(mouseX, mouseY);
    }
});

background.on("mouseup", (event) => {
    background.isCreatingLine = false;
});


document.body.appendChild(app.view);

这是 codepen

有没有人知道如何实现这一点?

最佳答案

我更新了您的代码,它似乎按照您希望的方式工作。

background.on("mousemove", (event) => {
    if (background.isCreatingLine) {
        let mouseX = event.data.global.x;
        let mouseY = event.data.global.y;
        lines[0].clear();
        lines[0].lineStyle(1, 0x000000);
        lines[0].moveTo(initialMoveTo[0], initialMoveTo[1]);
        lines[0].lineTo(mouseX, mouseY);
    }
});

每次鼠标移动时,清除存储在 lines[0] 中的当前行,然后重新应用样式和新位置。

关于javascript - 画一条线,好像我想画房子平面图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128539/

相关文章:

javascript - 将文本悬停在带有图像的 div 上

javascript - 记录到控制台有效,但立即导致 TypeError

javascript - 在 JavaScript 中计算从今天开始的过去日期

javascript - PixiJS v4 限制帧速率

javascript - JS Canvas 获取像素值非常频繁

javascript - 如何为跟踪鼠标移动的动画添加惯性?

javascript - 当其他选项卡关闭时刷新浏览器选项卡

javascript - 何时使用 node.js vs sinatra vs rails?

javascript - PIXI.RenderTexture 无渲染

javascript - 使用 Pixi.js/html Canvas 绘制鼠标选择区域(橡皮筋)