请教一下鼠标框选怎么实现呢?

就是鼠标按住,移动再松开,然后就选中起点和终点这个长方形中的所有节点,

1赞

应该是九宫格方形图片检测鼠标事件修改图片尺寸,然后范围有了做节点遍历或者碰撞检测之类的方法获取框选的内容吧

直接记坐标算呗

图片拉伸跟着手势自动缩放大小会嘛? 会,然后然后设个方向,偷点懒用碰撞 大致就是这样思路

起始点创建 Rect ,然后用 Rect 的 intersects 方法(判断当前矩形是否与指定矩形相交),判断是否和节点的包围盒相交

//1、发送个事件过去,判断每一个可选择的节点是否和这个矩形相交

        let sPos = v2()

        let endPos = v2();

        let w = Math.abs(sPos.x - endPos.x);

        let h = Math.abs(sPos.y - endPos.y);

        let x = Math.min(sPos.x,endPos.x);

        let y = Math.min(sPos.y,endPos.y);

        //鼠标框拖动形成的矩形;

        //let r = rect(x,y,w,h);

        //r.intersects();

        // 2 初始化的时候用一个二维数组把节点存下来

        //然后用鼠标的开始点,和结束点能得到开始(x1,y1)和结束(x2,y2);

        //遍历一下把这些节点取出来。

         

        //3 给能选中的节点加碰撞 选中sensor

        // 然后在鼠标结束的时候 创建一个能和节点发生碰撞的矩形