如何用touch事件响应一次点击选中多个Node的功能?

最近在做一个类似斗地主的卡牌游戏,有个功能就是,点击并拖动牌面,手指碰到的卡片都被选中。(见附件)。此功能用鼠标事件即:
this.node.on(cc.Node.EventType.MOUSE_DOWN,this.onTouchStart,this);
this.node.on(cc.Node.EventType.MOUSE_MOVE,this.onTouchMove,this);
this.node.on(cc.Node.EventType.MOUSE_UP,this.onTouchEnd,this);
非常好实现,但是mouse事件不在移动平台生效,然而换成Touch事件却很难实现这个逻辑,因为在touch_start的时候事件就会被一张卡牌捕获,touchMove和touchEnd都只在当前卡牌剩下,别的卡牌无法捕捉到touchMove事件。
根本问题:如何让多个不规则卡牌同时捕获到Touch事件。

我觉得你上层应该要一个透明的触摸区域,通过检查判断触摸区域来判断是点击、选择多个,不应该直接在牌上监听

嗯,我也想到过这个方案。但是难点在于判断触摸位置落在哪个或者哪些卡牌节点上。如果没有角度差别的话可以用rect来判断是否与点击位置相交,但是如果牌的角度是随机的,就不能用那个方法了,我想到的就是用数学方法来判断点是否与卡牌相交了,但是感觉太麻烦。

可以试试:

利用几何原理:
A(X1,Y1)
B(X2,Y2)
C(X3,Y3)
D(X4,Y4)
O(X,Y)
计算OA,OB.OC,OD四个向量角之和是否等于360度·!

可以,这个方法可以解决判断点是否在区域内的问题,剩下的就是根据卡牌角度算出四个点的位置。Thanks!