【发布时间】:2016-04-07 01:57:37
【问题描述】:
我找到了similar question,但我正在尝试检测和识别用户触摸了哪个 Sprite,但我不知道该怎么做。这是我的变量:
var sprites: [[SKSpriteNode]] = [[SKSpriteNode(imageNamed: "a"), SKSpriteNode(imageNamed: "b")], [SKSpriteNode(imageNamed: "c"),SKSpriteNode(imageNamed: "d")]]
这个想法是识别 spriteNode,然后将其替换为其他 sprite 或更改颜色,但我不知道如何使用这个 spriteNodes 矩阵来做到这一点,我猜第一步它是识别 sprite。
【问题讨论】:
-
您好! 0.0 @rakeshbs
-
首先,不要创建这样的精灵。你必须设置他们的名字。稍后,在 touchesBegan 中,您可以使用
nodeAtPoint或nodesAtPoint检查哪个节点被touched,并根据它们的名称采取适当的行动。如果您需要一些代码,请告知... -
实际上,rakeshbs 在该链接中发布的答案是您应该如何做。所以你必须创建按钮,命名它们,将它们添加到矩阵中(如果你喜欢的话)并使用他发布的代码。
-
是的,这就是我正在尝试的。你知道使用 rakeshbs 的代码获取用户触摸的精灵名称的方法吗?我的意思是,将名称从类 touchesprite 发送到我的场景以更改精灵的颜色,因为我做不到。谢谢! @旋风
-
那里都有解释。他展示了两种方法:1)在游戏场景中处理触摸检测。 2) 触摸检测在 touchesBegan 内部直接在 SKNode 的子类中处理。您正在尝试实施这两个示例中的哪一个?
标签: swift matrix sprite-kit touch skspritenode