Swift & SpriteKit - 使用 break 的 switch 语句
Posted
技术标签:
【中文标题】Swift & SpriteKit - 使用 break 的 switch 语句【英文标题】:Swift & SpriteKit - switch statement using break 【发布时间】:2018-01-21 16:40:22 【问题描述】:我有一个 switch 语句,它决定了哪个节点名称被触及。我有两个重叠的节点。如果触及顶部,我只想执行顶部节点案例的代码。所以我在那个案子之后休息了。即便如此,这两种情况的代码都会被执行。仅触发***案例的最佳方法是什么?下面是代码:
for node in nodeTouched
if let currentNode = node.name
switch currentNode
case "thisIsTheTopNode":
print("top")
break
case "thisIsTheNodeUnderneath":
print("bottom")
break
default:
break
输出: 顶部 底部
【问题讨论】:
我认为上面的代码没有任何问题。您的 break 语句应该有效。大多数情况下,您的 nodeTouched 都有两个节点。如果是,那么你也需要打破 for 循环。 在swift中,你不需要break 我敢打赌,nodeTouched 正在接触两个节点,而你不知道,在你的 for 后面打印一个print("\(nodeTouched.count)")
@adev - 你是对的。我也需要跳出 for 循环。呃。谢谢!
【参考方案1】:
正如 cmets 中所述,您的问题是您没有脱离 for 循环。进入 for 循环时,两个节点都存在。这将导致它在两个节点上进行迭代,并将打印两个节点,如问题所示。在这种情况下,您应该break
for 循环。
【讨论】:
以上是关于Swift & SpriteKit - 使用 break 的 switch 语句的主要内容,如果未能解决你的问题,请参考以下文章
SpriteKit Swift 2.0 游戏:跨多个场景的按钮和节点
Swift & SpriteKit - 使用 break 的 switch 语句
SpriteKit Swift 使整个场景变暗,然后将其改回
iOS Swift SpriteKit:如何使子精灵节点的位置和动作与其父精灵节点相同?