Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 如何更改重叠精灵上的触摸优先级_Cocos2d Iphone_Touch_Sprite_Overlapping - Fatal编程技术网

Cocos2d iphone 如何更改重叠精灵上的触摸优先级

Cocos2d iphone 如何更改重叠精灵上的触摸优先级,cocos2d-iphone,touch,sprite,overlapping,Cocos2d Iphone,Touch,Sprite,Overlapping,有没有办法更改cocos2d iOS精灵的触摸优先级?我所拥有的是屏幕上的多张卡片,它们排列成一个弧形,就像你拿着它们一样。所以在这个设置中,它们重叠,我需要识别触摸是在哪张卡上进行的。我可以测量卡的每个顶点的坐标,确定卡的可见区域,然后检查触摸是否在该区域内进行(不是吗?),但我认为有一种更简单的方法来处理这个问题,比如改变触摸优先级?这意味着最靠近屏幕的卡将具有最高优先级,并且它将在进入背景的过程中不断降低,因此即使同时在两个精灵(上面和下面的精灵)上进行触摸,也将仅在具有较高优先级的精灵上

有没有办法更改cocos2d iOS精灵的触摸优先级?我所拥有的是屏幕上的多张卡片,它们排列成一个弧形,就像你拿着它们一样。所以在这个设置中,它们重叠,我需要识别触摸是在哪张卡上进行的。我可以测量卡的每个顶点的坐标,确定卡的可见区域,然后检查触摸是否在该区域内进行(不是吗?),但我认为有一种更简单的方法来处理这个问题,比如改变触摸优先级?这意味着最靠近屏幕的卡将具有最高优先级,并且它将在进入背景的过程中不断降低,因此即使同时在两个精灵(上面和下面的精灵)上进行触摸,也将仅在具有较高优先级的精灵上进行注册


在互联网上阅读只揭示了更改精灵和图层优先级的方法,以便定义触摸是在图层上还是在精灵上进行的,但这不是我想要的。

据我所知,默认情况下,您得到的正是该行为,离您较近的精灵(在z轴上)具有优先级。然而,我认为他们也会把这件事传给他们背后的人。所以,我认为你需要做的是,当它到达你的任何精灵时,吃掉它。要做到这一点,只需在覆盖“touchBegin”方法时返回NO。希望有帮助。

嘿,非常感谢。我做了类似的事情,当检测到触摸时,我只是在touchStart中返回TRUE,这样触摸就不会被进一步分解,因为函数必须在执行return语句后立即结束。