忽略透明像素上的触摸

时间:2015-07-05 08:04:19

标签: ios transparent alpha uitouch

我有一个有许多重叠图像的场景。图像本身可以是各种形状。但是对于这个例子,我们可以说所有图像都是俄罗斯方块形状。

我的印象是,当您使用spritekit触摸UItouch中的节点时,触摸只会在您触摸图像的非透明部分时才会注册。但是......我很快发现,触摸方形节点内的任何地方都会触摸到它。

我解决这个问题的方法是为每个节点分配一个z深度,然后获取顶部任何节点的名称。是的,我知道......非常愚蠢。我得到了一个触摸的所有节点的列表,但我仍然遇到无法触摸另一个节点后面的节点的问题,即使它被透明空间覆盖。

我的下一个尝试是为每个节点创建一个SKShapeNode,它只屏蔽了我想要检测触摸的图像部分。但它似乎触及形状外的透明区域仍然记录为触摸。

Apple论坛上的一个开发人员告诉我在UITouch上使用locationInNode(spriteNode)。显然我可以使用位置信息来查找我在节点中触摸的像素颜色(看它是否透明),但是没有关于如何获得节点纹理的颜色/ alpha的代码。 / p>

有没有人能解决这个问题?如果屏幕上装满了俄罗斯方块,那么你试图通过触摸“T”形片下方的形状来触摸一个形状。你会怎么做?有没有更简单的方法?有没有办法掩盖你想要返回的区域?

  • 这不是UIview,我在spritekit中使用节点和纹理。

0 个答案:

没有答案